2016-05-30 3 views
0

Новое в регулярном выражении, еще не закончившееся изучением всего.Regex, exclusive string end matching

При попытке сопоставить строку, которая заканчивается, допустим, 1-5 вхождений символа a в конце можно сопоставить ее с шаблоном «a {1-5} $». Легкий peasy, работает.

Что делать, если я хочу, чтобы он НЕ соответствовал, если есть 6 или более случаев, но все еще есть 1-5.

"[^ a] + a {1-5} $" не работает должным образом, потому что для этого требуется другой символ перед a-образцом.

Я хочу, чтобы «aaaaaa» не работал и «aaaaa» работал.

ответ

3

В зависимости от вкуса вы можете использовать negative look behind:

(?<!a)a{1,5}$ 

Альтернативу вы можете использовать:

(?:[^a]|^)a{1,5}$ 

который будет соответствовать [^a] или начало строки перед вашими 1 до 5 а вот