正则表达式无法在 SunOS 上使用 {M,N} 进行匹配
regex failed to match using {M,N} on SunOS
我有以下示例文件和正则表达式。
testing.txt
testing aa
a bc de
e aa
ba Z
testing bb
testing ac
我使用 egrep 的正则表达式
egrep '[ ]{2,}' testing.txt
上面的正则表达式试图在一行中找到连续的空格。
但是,返回的结果是空的。
下面的正则表达式适用于 1 个或多个空格。然而这不是我想要的。
egrep '[ ]+' testing.txt
如果您的系统较旧,this help reference 可能描述了问题:
Traditional egrep did not support the {
metacharacter, and some egrep implementations support \{
instead, so portable scripts should avoid {
in egrep patterns and should use [{]
to match a literal {
.
这意味着 - 如果 grep '[ ]\{2,\}' testing.txt
不起作用 - 你最好使用 Perl 或 GNU grep 来实现你想要的。
此外,egrep '[ ][ ]+' testing.txt
似乎只是在当前情况下的解决方法,不会扩展,但暂时肯定会对您有所帮助。
我有以下示例文件和正则表达式。
testing.txt
testing aa
a bc de
e aa
ba Z
testing bb
testing ac
我使用 egrep 的正则表达式
egrep '[ ]{2,}' testing.txt
上面的正则表达式试图在一行中找到连续的空格。 但是,返回的结果是空的。
下面的正则表达式适用于 1 个或多个空格。然而这不是我想要的。
egrep '[ ]+' testing.txt
如果您的系统较旧,this help reference 可能描述了问题:
Traditional egrep did not support the
{
metacharacter, and some egrep implementations support\{
instead, so portable scripts should avoid{
in egrep patterns and should use[{]
to match a literal{
.
这意味着 - 如果 grep '[ ]\{2,\}' testing.txt
不起作用 - 你最好使用 Perl 或 GNU grep 来实现你想要的。
此外,egrep '[ ][ ]+' testing.txt
似乎只是在当前情况下的解决方法,不会扩展,但暂时肯定会对您有所帮助。