gpt4 book ai didi

regex - grep 正则表达式 : whitespace doesn't match unless I add an assertion

转载 作者:IT王子 更新时间:2023-10-29 00:33:16 27 4
gpt4 key购买 nike

Ubuntu 10.04 上的 bash 4.1.5(1) 上的 GNU grep 2.5.4

这个匹配

$ echo "this is a     line" | grep 'a[[:space:]]\+line'
this is a line

但这不是

$ echo "this is a     line" | grep 'a\s\+line'

但这也匹配

$ echo "this is a     line" | grep 'a\s\+\bline'
this is a line

我不明白为什么 #2 不匹配(而 #1 匹配)而 #3 也显示匹配。这里有什么区别?

最佳答案

查看您的 grep 联机帮助页。 Perl 添加了许多原始规范中没有的正则表达式扩展。然而,由于它们被证明非常有用,许多程序都采用了它们。

不幸的是,grep 有时会停留在过去,因为您想确保您的 grep 命令与旧版本的 grep 保持兼容。

有些系统有带有一些扩展的egrep。其他的允许您使用 grep -E 来获取它们。还有一些有 grep -P 允许您使用 Perl 扩展。我相信 Linux 系统的 grep 命令可以使用 -P 扩展,这在大多数 Unix 系统中是不可用的,除非有人用 GNU 版本替换了 grep。较新版本的 Mac OS X 也支持 -P 开关,但不支持旧版本。

关于regex - grep 正则表达式 : whitespace doesn't match unless I add an assertion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013152/

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