什么是正则表达式“[a-z0-9] \ +”假设是什么意思?或者具体是什么是“\”在这里意味着什么?世界上没有与正则表达式相匹配的字符串是对的吗?
答案 0 :(得分: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
答案 1 :(得分:2)
\
中的[a-z0-9]\+
表示字面加字符。需要它是因为没有斜杠,+
将是one-or-more quantifier。
比较
[a-z0-9]\+
匹配拉丁文小写字母或数字后跟加号,例如y+
[a-z0-9]+
匹配一个或多个拉丁文小写字母或数字,例如xy4
答案 2 :(得分:0)
它使" +"文字+符号。这将与匹配第一个范围后跟+符号的任何字符匹配,例如c+
或5+
。
没有斜线,+表示"一个或多个出现",所以字符串如abc
,t63
。
答案 3 :(得分:0)
此处的斜杠(“\”)用于转义+
。
+
在正则表达式中具有特殊含义:它表示重复前置项目一次或多次。
[a-z0-9]\+
表示:匹配一个字母数字字符和一个加号(“+”)[a-z0-9]+
表示:匹配一个或多个字母数字字符你可以找到有关正则表达量词 here 的更多信息。
您可能还想查看此 Regular Expression Basic Syntax Reference 。
答案 4 :(得分:0)
反斜杠(\
)转义特殊字符以抑制其特殊含义。所以这里删除了+
的特殊含义。它被认为只是一个象征。 +
的通常含义是重复前一个块1次或更多次。
因此,在这种情况下,[a-z0-9]\+
表示单个小写字母或十进制数字后跟+。 a+
,b+
,0+
,1+
等都是此正则表达式的有效表达。