gpt4 book ai didi

regex - 在 OS X 上 sed - 似乎无法在正则表达式中使用 +

转载 作者:行者123 更新时间:2023-12-03 10:33:02 24 4
gpt4 key购买 nike

现在根据所有文献

echo 1234abcd|sed "s|[0-9]\+|#|g"

应该输出#abcd。和
echo abcd|sed "s|[0-9]\+|#|g"

应该输出 abcd。

但在 OS X 10.4.11 上,第一个表达式输出 1234abcd。使用 * 而不是 + 适用于第一个示例,但在第二个示例中失败,输出 #abcd,因为 [0-9] 模式匹配零次。

+ 运算符在 OS X 中的正则表达式中不起作用吗?有替代方案吗?

谢谢

最佳答案

在 OSX 上,sed默认情况下使用基本 RE。您应该使用 sed -E如果您想使用现代 RE,包括 "+"一个或多个运算符(operator)。

here表示sed默认使用基本 RE,here对于现代 RE 语法,和 here用于基本 RE ( ed ) 信息。

或者,如果您的正则表达式引擎不支持 +总之,你可以简单地使用 *相反,通过转换(例如):

[a-z]+

进入:
[a-z][a-z]*

关于regex - 在 OS X 上 sed - 似乎无法在正则表达式中使用 +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1227174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com