2016-06-10 2 views
0

Печально, но моя библиотека регулярных выражений не поддерживает утверждения lookahead и lookbehind.Regex не заканчивается, без lookahead или lookbehind

Возможно ли создать регулярное выражение, которое соответствует строкам, не заканчивающимся моим рисунком, например foobar\d\d?

+1

ли решение должно быть чисто в одном регулярном выражении, или вы можете сделать что-то вроде 'pattern1.matches (строка) и не pattern2.matches (строка)' ? –

+0

К сожалению, да, это сложная структура без прямого доступа к строкам. – user6449044

ответ

0

Возможно, хотя немного подробный. Допустим, вы хотите, чтобы ваша строка не заканчивается abc, вот регулярное выражение для этого:

([^c]|[^b]c|[^a]bc)$ 

Обратите внимание, что это не будет соответствовать строки как c или bc. Для того, чтобы соответствовать тем, регулярное выражение становится более сложным:

([^c]|[^b]c|[^a]bc|^|^c|^bc)$