Regex не работает правильно все время, почему? - PullRequest
0 голосов
/ 05 июня 2019

Регулярное выражение в некоторых случаях просто работает, другие не работают.

https://regex101.com/r/p5u3N6/1

Я ожидал, что регулярное выражение соответствует только группам из двух "{} {}" без нуля между {}

Ответы [ 3 ]

0 голосов
/ 05 июня 2019

.*? в первой части вашего шаблона проходит через неожиданные части вашего ввода, пока не найдет, потому что . принимает все эти символы. Просто сделать ленивый квантификатор с помощью ? недостаточно - он будет продолжаться, пока не найдет совпадение.

\{[^}]*?\}\s\{[^}]*?\}

https://regex101.com/r/p5u3N6/5

0 голосов
/ 05 июня 2019

Не уверен, что я понял ваши требования, я полагаю, вы хотите, чтобы совпадали только пары {}{}, и не допускайте ничего, кроме одного пробела между этими двумя.Вы можете попробовать это \{([^\{]+)\}\ \{([^\}]+)\}.

0 голосов
/ 05 июня 2019

Я предполагаю, что мы хотим захватить только три из наших входных данных, перечисленных в демонстрационной версии, используя выражение, похожее на:

(\{.*?\}(.+?){.*?\}) 

Демо 1

или

(\{(.+?)\}(.+?){(.+?)\})

Демо 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...