&{2}
可以匹配双'&&' char(换句话说 - 一个AND
运算符),一切都如我所料。但是,[&{2}|\|{2}]
将匹配单个'&'或'|' char。我该如何处理案件以及案件发生的原因?
答案 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
&&
||
正如您所看到的,&&
和||
已匹配且|
未匹配。