Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   regExp: совпадение с конца (http://www.flasher.ru/forum/showthread.php?t=148475)

TanaTiX 02.01.2011 19:33

regExp: совпадение с конца
 
Как при помощи RegExp найти совпадения с конца строки? Варианты реверса строки и прочие извраты не принимаются, как заведомо не правильное решение, реализуемое только как жест отчаяния. Заранее спасибо.

iNils 02.01.2011 19:42

Поставить $ в конец выражения.
В тексте
Код:

abc cde fgh
cde fgh abc
fgh abc cde

выражение
Код AS3:

/cde$/gm

возьмет только cde в последней строке

Zebestov 02.01.2011 20:10

iNils, а если после cde есть еще символы до конца строки?

udaaff 02.01.2011 22:18

По логике получается, что нужно найти подстроку после которой больше нету совпадений:
Код:

/asd(?!.*?asd.*$)/gm
Это в случае, если нужно найти одно совпадение с конца каждой строки. Хотя автор, возможно, и что-то другое хотел.
Проще ничего не придумалось.

TanaTiX 03.01.2011 12:10

Всем спасибо, вариант iNils - то, что нужно.
Еще вопрос на тему регэксов
Как определить несколько различных совпадений? Флаг g не подходит, т.к. необходимо только по одному совпадению. Я так понимаю, что это возможно без создания 2х экземпляров RegExp.

Wolsh 03.01.2011 14:35

Скобки? ()
Не совсем понятно о чем Вы.

iNils 04.01.2011 03:53

Цитата:

Как определить несколько различных совпадений?
Берем первоначальный пример
Код:

abc cde fgh
cde fgh abc
fgh abc cde

Нужно найти cde или abc в конце строки
Код AS3:

/(cde|abc)$/gm


TanaTiX 04.01.2011 13:47

iNils, нет, мне к примеру нужно найти cde сначала строки и abc с конца, т.е. найденное должно иметь следующий вид:
Цитата:

abc cde fgh
cde fgh abc
fgh abc cde

Psycho Tiger 04.01.2011 14:25

2 регекспа не подходит?

TanaTiX 04.01.2011 14:38

Psycho Tiger, еслим одним это не решить, то подходит. Но тут, как всегда, желание оптимизировать, да и интересно же.

Добавлено через 25 часов 51 минуту
Я так понимаю, что одним проходом это невозможно....


Часовой пояс GMT +4, время: 10:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.