匹配双'&&' char或double'||'在正则表达式

时间:2012-08-01 10:36:01

标签: regex

&{2}可以匹配双'&&' char(换句话说 - 一个AND运算符),一切都如我所料。但是,[&{2}|\|{2}]将匹配单个'&'或'|' char。我该如何处理案件以及案件发生的原因?

3 个答案:

答案 0 :(得分:4)

[]是一个字符组,即“此组中的任何字符。”特殊字符在其中没有任何相同或不相同的含义。使用常规组:

(&{2}|\|{2})

如果您希望它不被捕获:

(?:&{2}|\|{2})

答案 1 :(得分:1)

你试过吗

/([&|])\1/

()   - capture
[&|] - character class which matches a single & or |
\1   - and match what has been captured  

匹配并加倍&或者|

答案 2 :(得分:0)

在这种情况下不要使用[]

&{2}|\|{2}

使用示例:

$ perl -ne 'print if /&{2}|\|{2}/' <<EOF
> &&
> ||
> |
> EOF
&&
||

正如您所看到的,&&||已匹配且|未匹配。