正则表达式“[a-z0-9]\+”是什么意思?或者具体来说,这里的“\”是什么意思?世界上没有匹配该正则表达式的字符串是否正确?
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 回答