BuddyPress bbPress
Shell高效的字符串切割替换删除
-
Shell 字符串匹配截取
注意:匹配某些特殊符号比如
/时,要在前面增加转义符\例如:匹配字符
ab未有匹配则保持原字符串输出,正则匹配[0-9]或[a-z]或[!0-9]切割:
${str#*ab} 的 #*ab 表示从左到右匹配,将首个匹配的 ab 以及之前的所有字符串删除 ${str##*ab} 的 ##*ab 表示从左到右匹配,将最后匹配的 ab 以及之前的所有字符串删除 ${str%%ab*} 的 %%ab* 表示从左到右匹配,将首个匹配的 ab 以及之后的所有字符串删除 ${str%ab*} 的 %ab* 表示从左到右匹配,将最后匹配的 ab 以及之后的所有字符串删除 ${str:0-3} 的 :0-3 表示截取最后 3 位字符。注意:若字符串长度只有2位则会失败删除:
${str#a} 方向从左到右开始匹配 → 删除以 a 起始的一个字符 ${str%a} 方向从右到左开始匹配 ← 删除以 a 起始的一个字符 ${str#"${str%%[!a]*}"} 方向从左到右开始匹配 → 删除以 a 起始的连续重复字符,直至出现其他字符为止 ${str%"${str##*[!a]}"} 方向从右到左开始匹配 ← 删除以 a 起始的连续重复字符,直至出现其他字符为止替换:
${str/ab/+} 的 /ab/+ 表示从左到右匹配,首次匹配 字符 ab 替换成 + ${str/%ab/+} 的 /%ab/+ 表示只匹配 后缀 字符 ab 替换成 + ${str/#ab/+} 的 /#ab/+ 表示只匹配 前缀 字符 ab 替换成 + ${str//ab/+} 的 //ab/+ 表示将全部匹配的 ab 全部替换成 +
回复 1
回复 1
- 哎呀,回复话题必需登录。
