Это регулярное выражение, оценивается в .NETможет не совпадать скобки в регулярных выражениях группы
У меня есть следующий вход:
${guid->newguid()}
И я хочу, чтобы произвести две соответствующих группы, последовательность символа после ${
и перед }
, которые расщепленного ->
:
- Guid
- newguid()
Узор я использую следующее:
([^(?<=\${)(.*?)(?=})->]+)
Но это не соответствует скобки, я получаю только следующие матчи:
- справ
- newguid
Как я могу изменить тыс e regex, поэтому я получаю желаемые группы?
Попробуйте ['\ $ {([^}] *?) -> ([^}] *)}'] (http://regexstorm.net/tester?p=%5c%24%7b%28 % 5b% 5e% 7d 5d% *% 3f% 29-% 3e% 28% 5b% 5e% 7d 5d% *% 29% 7d & я =% 24% 7bguid-% 3enewguid% 28% 29% 7d). –
@ WiktorStribiżew спасибо, похоже, это работает. Я получаю совпадение, и у меня есть три группы: первая строка: $ {guid-> newguid()}, вторая: guid и третья: newguid() Упорядочить, пожалуйста, почему регулярное выражение, которое я ранее пробовал, ? Не предполагалось, что (. *) Соответствует всем событиям? – gdyrrahitis
Вкратце: вы разрушили регулярное выражение, поместив последовательность шаблонов в класс отрицательных символов. –