正则表达式“[a-z0-9]\+”是什么意思?或者具体来说,这里的“\”是什么意思?世界上没有匹配该正则表达式的字符串是否正确?
问问题
312 次
5 回答
5
这很难说。这取决于您使用哪个 RE(BRE?ERE?或 PCRE)。
如果您使用BRE,则\
赋予+
特殊含义。
如果您使用ERE/PCRE,\
则带走特殊含义+
。
一个例子会很清楚(使用 grep,默认使用 BRE):
kent$ echo "aaaaaa+"|grep -o 'a+'
a+
kent$ echo "aaaaaa+"|grep -o 'a\+'
aaaaaa
kent$ echo "aaaaaa+"|grep -oE 'a\+'
a+
kent$ echo "aaaaaa+"|grep -oE 'a+'
aaaaaa
于 2013-07-06T15:36:05.027 回答
2
\
in[a-z0-9]\+
表示文字加号。它是必需的,因为没有斜线, the+
将是一个或多个 quantifier。
相比:
[a-z0-9]\+
匹配后跟加号的拉丁小写字母或数字,例如y+
[a-z0-9]+
匹配一个或多个拉丁小写字母或数字,例如xy4
于 2013-07-06T15:33:45.237 回答
0
它使“+”成为文字 + 符号。这将与匹配第一个范围的任何字符匹配,后跟一个 + 号,例如c+
or 5+
。
如果没有斜线,+ 将表示“一次或多次出现”,因此字符串如abc
, t63
。
于 2013-07-06T15:32:50.040 回答
0
这里的斜杠(“\”)用于转义+
.
+
在正则表达式中有一个特殊的含义:它意味着重复前面的项目一次或多次。
[a-z0-9]\+
表示:匹配一个字母数字字符和一个加号(“+”)[a-z0-9]+
表示:匹配一个或多个字母数字字符
您可以在此处找到有关正则表达式量词的更多信息。
您可能还想看看这个正则表达式基本语法参考。
于 2013-07-06T15:33:41.367 回答
0
反斜杠 ( \
) 转义特殊字符以抑制其特殊含义。所以这里+
去掉了 的特殊含义。它被认为只是一个象征。的通常含义+
是重复前面的块 1 次或更多次。
所以在这种情况下[a-z0-9]\+
意味着一个小写字母或一个十进制数字后跟一个+。a+
, b+
,0+
等1+
都是这个正则表达式的有效表达式。
于 2013-07-06T15:34:25.747 回答