现在根据所有文献
echo 1234abcd|sed "s|[0-9]\+|#|g"
Run Code Online (Sandbox Code Playgroud)
应该输出#abcd.和
echo abcd|sed "s|[0-9]\+|#|g"
Run Code Online (Sandbox Code Playgroud)
应该输出abcd.
但在OS X 10.4.11中,第一个表达式输出1234abcd.使用*代替+用于第一个示例但在第二个示例中失败,输出#abcd,因为[0-9]模式匹配零次.
+运算符在OS X中的正则表达式中不起作用吗?还有其他选择吗?
谢谢
pax*_*blo 53
在OSX上,sed默认情况下使用基本RE.sed -E如果要使用现代RE,则应使用,包括"+"一个或多个运算符.
请参阅此处了解sed默认情况下使用基本RE 的指示,此处为现代RE语法,此处为基本RE(ed)信息.
或者,如果你有一个完全不支持的正则表达式引擎+,你只需使用*转换(例如):
[a-z]+
Run Code Online (Sandbox Code Playgroud)
成:
[a-z][a-z]*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11531 次 |
| 最近记录: |