正则表达式中斜线的含义是什么?

时间:2013-07-06 15:30:48

标签: regex

什么是正则表达式“[a-z0-9] \ +”假设是什么意思?或者具体是什么是“\”在这里意味着什么?世界上没有与正则表达式相匹配的字符串是对的吗?

5 个答案:

答案 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+

没有斜线,+表示"一个或多个出现",所以字符串如abct63

答案 3 :(得分:0)

此处的斜杠(“\”)用于转义++在正则表达式中具有特殊含义:它表示重复前置项目一次或多次。

  • [a-z0-9]\+表示:匹配一个字母数字字符和一个加号(“+”)
  • [a-z0-9]+表示:匹配一个或多个字母数字字符

你可以找到有关正则表达量词 here 的更多信息。
您可能还想查看此 Regular Expression Basic Syntax Reference

答案 4 :(得分:0)

反斜杠(\)转义特殊字符以抑制其特殊含义。所以这里删除了+的特殊含义。它被认为只是一个象征。 +的通常含义是重复前一个块1次或更多次。

因此,在这种情况下,[a-z0-9]\+表示单个小写字母或十进制数字后跟+。 a+b+0+1+等都是此正则表达式的有效表达。