语法复杂的逻辑语句

logical statement with complex syntax

我发现了一件衬衫,上面有一些正则表达式,应该是摇矛引语。有人可以解释一下如何将其翻译成“2b or not 2b”吗?

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

这是一个正则表达式(regex)。

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

给定一个字符串,

(bb)

匹配确切的字符串 bb。这是表示 "to be."

的部分
(b|b[^b]|[^b])*b?

在组内,它匹配 b,或 b 后跟除 b 以外的任何字符,或只是 b 以外的任何字符。将 * 添加到该组的末尾匹配它 0 次或更多次。 b? 最后意味着你有一个尾随 b 或者你没有。这应该表示 "not to be," 尽管也可以将 bb 与这部分匹配。

您在 ? 之后有一个无关紧要的闭括号 )

莎士比亚的名言 "to be or not to be," 程式化为“2b or not 2b”。