Регулярное совпадение, пока не будет включено или не включено - PullRequest
0 голосов
/ 16 октября 2018

Я ищу Regex, чтобы найти подстроку, начинающуюся с A, с остановкой на B или C.Однако, когда это B, оно не должно включать B, но когда оно C, оно должно включать C.

Например, этот текст: XXAXXXXBXX, затемдолжен возвращать AXXXX, но когда он XXAXXXXCXX, он должен возвращать AXXXXC.

Я уже смотрел на позитивные взгляды и прочее, но пока это не работает.В настоящее время я использую что-то вроде A.+(?=C|B), но, очевидно, это не так :( Кто-нибудь идея?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Попробуйте этот шаблон: A[^BC]+C?.

Объяснение: начинается совпадение с A, затем совпадает с одним или несколькими символами, отличными от B или C ([^BC]+), послечто он соответствует не более одного C, если его нет, то не соответствует ничему другому.

Демо

0 голосов
/ 16 октября 2018

Ну я уже нашел ответ!Я могу использовать что-то вроде этого: (A.+)((?=B)|C), который начинается с A.+ и совпадает до C или прогноз B (который вообще не включает B).

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