正则表达式 – 如何逃避加号在mac os x(BSD)sed?

我试图找到并替换一个或多个出现的字符使用sed从mac,从BSD一般命令sed.

我试试:

echo "foobar" | sed -e "s/o+//g

期待看到:

fbar

而是我看到

foobar

我当然可以手动扩展加号:

echo "foobar" | sed -e "s/oo*//g"

但是为了得到加号,我该怎么办?

使用/ g标志,s / o // g就足以取代所有o的出现.

为什么不按预期工作:在旧的,过时的re是一个普通的字符(以及|,?).您应该指定-E标志以使其使用现代正则表达式:

echo "foobar" | sed -E -e "s/o+//"
# fbar

资料来源:man 7 re_format.

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...