目录
获取字符串长度:
从字符串开始的地方匹配子字符串的长度:
1.expr match "$string" '$substring'
2.expr "$string" : '$substring
注释:$substring是一个正则表达式
提取子字符串:
1.${string:position}
在string 中从位置$position 开始提取子字符串. 如果$string为"*"或"@",那么将提取从位置$position开始的位置参数,[1]
2.${string:position:length}
在 string 中从位置$position 开始提取$length 长度的子串。
3. expr substr $string $position $length
4.expr match "$string" '\($substring\)'
从$string 的开始位置提取$substring,$substring 是一个正则表达式。
expr "$string" : '\($substring\)'
从$string 的开始位置提取$substring,$substring 是一个正则表达式。
从字符串结尾反向提取:
子字符串消除
${string#substring}
从$string 的左边截掉第一个匹配的$substring
${string%substring}
从$string 的右边截掉第一个匹配的$substring
${string##substring}
从$string 的左边截掉最后一个个匹配的$substring
如上图所使,当两个#号的时候,会消除匹配最远的。
${string%%substring}
从$string 的右边截掉最后一个匹配的$substring
整个时候注意的是,当上面的字符串,感觉可以进行处理,但是当我这样写时:
是无效的,这样写有效:
字符串替换
1.${string/substring/replacement}
使用$replacement 来替换第一个匹配的$substring.
2.${string//substring/replacement}
使用$replacement 来替换所有匹配的$substring.
3.${string/#substring/replacement}
用$substring 匹配$string 的开头部分,能匹配上就用$replacement 来替换$substring.
4.${string/%substring/replacement}
用$substring 匹配$string 的结尾部分, ,能匹配上就用$replacement 来替换$substring.
子字符串所在位置
expr index "$string" '\($substring\)'
$substring可以是一个正则表达式