Страницы

Поиск по вопросам

среда, 3 апреля 2019 г.

Regexp соответствующий любому набору символов до первого вхождения подстроки

Например: строка - "все вот это досюда, а дальше там еще много всего досюда". Подстрока, до которой надо вывести все - "досюда", получить надо "все вот это ".


Ответ

Задача решается при помощи следующего регулярного выражения (PCRE):
(.*?)досюда
В первом совпадении (Match 1) будет искомая подстрока.
Следует обратить внимание на "ленивый" квантификатор (.*?). Если бы он был обычным, т.е. "жадным" (.*), то результат немного отличался бы от ожидаемого. "Жадный" квантификатор для строки
"все вот это досюда, а дальше там еще много всего досюда"
выдаст совпадение
"все вот это досюда, а дальше там еще много всего "
в то время как "ленивый" даст вполне ожидаемый результат:
"все вот это "

Комментариев нет:

Отправить комментарий