powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Регулярка
8 сообщений из 8, страница 1 из 1
Регулярка
    #39952749
шкафчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой регуляркой найти комбинацию символов ');' перед которой например встречается другая комбинация символов, например 'qwe' и неск других произвольных символов ?
Хочу уточнить, что хочу реплейсить такие ');' в ноут++ , и мне нужно именно саму ');' , а не всю комбинацию с 'qwe'.
Т.е. такая регулярка например мне не подходит: qwe.*\); поскольку найдется вся комбинация, к примеру такая: qwe dffdgfd );
А мне нужно пореплейсить только );
...
Рейтинг: 0 / 0
Регулярка
    #39952808
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шкафчик,

Поскольку язык не указан, привожу пример для Perl
(XXX - то на что заменить)
Код: sql
1.
s/(qwe.*)\)/$1XXX/
...
Рейтинг: 0 / 0
Регулярка
    #39953031
Фотография Имя пользователя1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шкафчик
например 'qwe' и неск других произвольных символов ?
несколько - это сколько?
а то ведь qwe может быть в начале текста, а ");" в конце

и конечно, не забыть про нежадность, а то qwe будет первым попавшимся, а ");" самым дальним от неё
...
Рейтинг: 0 / 0
Регулярка
    #39953074
шкафчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем такая регулярка находит весь блок:

qwe \(\r\n.*\r\n.*\r\n.*\r\n.*\);

Если реплейсить эту конструкцию, то будет замена всей комбинации qwe и то что в скобках.
А мне нужно заменить только последнюю ); в такой комбинации.
Какое выражение использовать в ноутпаде вместо того что выше?
...
Рейтинг: 0 / 0
Регулярка
    #39953502
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шкафчик, в Notepad++ версий 6 и новее:

Код: python
1.
2.
НАЙТИ:  qwe.*\K);
ЗАМЕНИТЬ НА: ZZZ
...
Рейтинг: 0 / 0
Регулярка
    #39953576
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
круглую скобку заэкранировать \ ) , конечно же.
...
Рейтинг: 0 / 0
Регулярка
    #39954517
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шкафчик
Какой регуляркой найти комбинацию символов ');' перед которой например встречается другая комбинация символов, например 'qwe' и неск других произвольных символов ?
Хочу уточнить, что хочу реплейсить такие ');' в ноут++ , и мне нужно именно саму ');' , а не всю комбинацию с 'qwe'.
Т.е. такая регулярка например мне не подходит: qwe.*\); поскольку найдется вся комбинация, к примеру такая: qwe dffdgfd );
А мне нужно пореплейсить только );

Не забывай что закрывающая скобка - служебный символ. Вообще весь сомнительный user input
никогда не должен попадать в регулярку. Если что-то заходит извне - квотируй через функции.

Пример с Java
Код: java
1.
Pattern.quote(");")



Или

Код: sql
1.
"\\Q);\\E"



в неком обобщённом стандарте (в каком - я не помню).
...
Рейтинг: 0 / 0
Регулярка
    #39954588
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шкафчик,
используй backreference

Код: sql
1.
2.
найти: (qwe.*)\);
заменить на: \1
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Регулярка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]