Я нашел рубашку с некоторым регулярным выражением на ней, которая должна быть кошельком. Может кто-нибудь объяснить, как это можно перевести на «2b или не 2b»?логический оператор со сложным синтаксисом
/((bb)|(b|b[^b]|[^b])*b?)/
Я нашел рубашку с некоторым регулярным выражением на ней, которая должна быть кошельком. Может кто-нибудь объяснить, как это можно перевести на «2b или не 2b»?логический оператор со сложным синтаксисом
/((bb)|(b|b[^b]|[^b])*b?)/
Это регулярное выражение (регулярное выражение).
В регулярных выражениях Perl /
обозначает начало или конец регулярного выражения. |
означает «или» и ^
означает «нет». Скобки обозначают группу, в которой порядок содержания и квадратные скобки обозначают группу, где порядок содержимого не имеет значения. ?
означает совпадение с предыдущим шаблоном один или несколько раз.
Получая строку,
(bb)
точно соответствует строке bb
. Это та часть, которая обозначает «быть».
(b|b[^b]|[^b])*b?
В группе, она соответствует b
или b
с последующим любым символом, кроме b
, или просто любой символ, отличный от b
. Добавление *
до конца этой группы соответствует ему 0 или более раз. b?
на конце означает, что у вас есть завершающий b
, или нет. Это должно означать «не быть», хотя с этой частью можно также сопоставить bb
.
У вас есть посторонний закрытый контакт )
после ?
.
Цитата Шекспира «быть или не быть», стилизованная под «2b или не 2b».
Почему, по вашему мнению, это * логическое * утверждение? Похоже на регулярное выражение. – crashmstr
У вас есть несбалансированные круглые скобки. –