Regex 正则表达式在SunOS上使用{M,N}进行匹配失败
我有以下示例文件和正则表达式 testing.txtRegex 正则表达式在SunOS上使用{M,N}进行匹配失败,regex,grep,sunos,Regex,Grep,Sunos,我有以下示例文件和正则表达式 testing.txt testing aa a bc de e aa ba Z testing bb testing ac 我的正则表达式使用egrep egrep '[ ]{2,}' testing.txt 上面的正则表达式尝试在一行中查找连续的空格。 但是,返回的结
testing aa
a bc de
e aa
ba Z
testing bb
testing ac
我的正则表达式使用egrep
egrep '[ ]{2,}' testing.txt
上面的正则表达式尝试在一行中查找连续的空格。
但是,返回的结果为空
下面的正则表达式适用于1个或多个空间。然而,这不是我想要的
egrep '[ ]+' testing.txt
如果您的系统是旧的,则可能正在描述此问题:
传统的egrep不支持{
元字符,而一些egrep实现支持{
,因此可移植脚本应该避免在egrep模式中使用{
,并且应该使用[{]
来匹配文本{
这意味着,如果grep'[]\{2,\}testing.txt
不起作用,那么最好使用Perl或GNU grep来实现您想要的
此外,egrep'[]+'testing.txt似乎仅在当前情况下是一种解决方法,不会扩展,但它肯定会暂时帮助您。如果您的系统是旧的,则可能会描述此问题:
传统的egrep不支持{
元字符,而一些egrep实现支持{
,因此可移植脚本应该避免在egrep模式中使用{
,并且应该使用[{]
来匹配文本{
这意味着,如果grep'[]\{2,\}testing.txt
不起作用,那么最好使用Perl或GNU grep来实现您想要的
另外,egrep'[]+'testing.txt似乎只是当前情况下的一种变通方法,它不会扩展,但目前肯定会对您有所帮助。您使用的是哪个版本的egrep?egrep--version
是否有空格?请尝试在括号表达式中添加一个制表符。@Mox:可能尝试[][]+
或\s\s+
括号表达式中的反斜杠被视为文字反斜杠。[\t]
匹配\
或t
。使用括号表达式中的文字选项卡,它不是字符类。另一件事是,在BRE regex中,需要转义括号\{n,m\}
,您不需要这样做。不知道egrep支持什么确切的风格。我最终总是在Sun系统上使用Perl,这更为一致。您使用的是哪个版本的egrep?egrep--version
是否有空格?尝试在括号表达式中添加一个制表符。@Mox:可能尝试[]+
或\s\s+
括号表达式中的反斜杠被视为文字反斜杠。[\t]
匹配\
或t
。使用括号表达式中的文字选项卡,它不是字符类。另一件事是,在BRE regex中,需要转义括号\{n,m\}
,你不需要这样。不知道egrep支持什么口味。我最终总是在Sun系统上使用Perl-它更一致。很遗憾,这是该公司的服务器哈哈,所以我没有升级的能力…很遗憾,这是该公司的服务器哈哈,所以我没有升级的能力。。。