Просмотр полной версии : regExp: совпадение с конца
Как при помощи RegExp найти совпадения с конца строки? Варианты реверса строки и прочие извраты не принимаются, как заведомо не правильное решение, реализуемое только как жест отчаяния. Заранее спасибо.
Поставить $ в конец выражения.
В тексте
abc cde fgh
cde fgh abc
fgh abc cde
выражение
/cde$/gm
возьмет только cde в последней строке
Zebestov
02.01.2011, 20:10
iNils, а если после cde есть еще символы до конца строки?
По логике получается, что нужно найти подстроку после которой больше нету совпадений:
/asd(?!.*?asd.*$)/gm
Это в случае, если нужно найти одно совпадение с конца каждой строки. Хотя автор, возможно, и что-то другое хотел.
Проще ничего не придумалось.
Всем спасибо, вариант iNils - то, что нужно.
Еще вопрос на тему регэксов
Как определить несколько различных совпадений? Флаг g не подходит, т.к. необходимо только по одному совпадению. Я так понимаю, что это возможно без создания 2х экземпляров RegExp.
Скобки? ()
Не совсем понятно о чем Вы.
Как определить несколько различных совпадений?
Берем первоначальный пример
abc cde fgh
cde fgh abc
fgh abc cde
Нужно найти cde или abc в конце строки
/(cde|abc)$/gm
iNils, нет, мне к примеру нужно найти cde сначала строки и abc с конца, т.е. найденное должно иметь следующий вид:
abc cde fgh
cde fgh abc
fgh abc cde
Psycho Tiger
04.01.2011, 14:25
2 регекспа не подходит?
Psycho Tiger, еслим одним это не решить, то подходит. Но тут, как всегда, желание оптимизировать, да и интересно же.
Добавлено через 25 часов 51 минуту
Я так понимаю, что одним проходом это невозможно....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.