具有复杂语法的逻辑语句

时间:2015-01-23 18:38:20

标签: regex logical-operators

我找到了一件带有一些正则表达式的衬衫,应该是一个摇晃矛引用。有人可以解释如何将其翻译成“2b或不2b”吗?

/((bb)|(b|b[^b]|[^b])*b?)/

1 个答案:

答案 0 :(得分:1)

这是正则表达式(正则表达式)。

在Perl正则表达式中,/表示正则表达式的开头或结尾。 |表示“或”,^表示“不”。括号表示内容顺序重要的组,方括号表示内容顺序无关紧要的组。 ?表示匹配前面的模式一次或根本不匹配。

给定一个字符串,

(bb)

匹配确切的字符串bb。这是表示“成为”的部分。

(b|b[^b]|[^b])*b?

在群组中,它与bb后面跟b以外的任何字符匹配,或者只匹配b以外的任何字符。将*添加到此组的末尾会将其匹配0次或更多次。最后b?表示您有一个尾随b或者您没有。bb。这应该表示“不是”,尽管也可以将)与此部分匹配。

?后你有一个无关紧要的关注{{1}}。

莎士比亚的引语是“成为或不成为”,被称为“2b或不是2b”。