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

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

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

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

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

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

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

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



Или

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



в неком обобщённом стандарте (в каком - я не помню).
...
Рейтинг: 0 / 0
06.05.2020, 14:03
    #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]