Fett
@Fett
Разработчик

Как выбрать строку до определенных символов?

К примеру, нужно выбрать строку до одного из следующих символов: ,;.
В данном случае решается просто: /^[^,;]+/
Собственно вопрос: как выбрать строку до группы символов?
Например до \s[a-z] (пробел и любая буква). Что-то вроде: /^[^,;ГРУППА]+/

UPD: необходимо выбрать строку, как до отдельных символов, так до какой-нибудь группы символов
  • Вопрос задан
  • 1743 просмотра
Решения вопроса 1
@MiiNiPaa
Используйте группы захвата: https://regex101.com/r/qN5qP8/3

UPD: Обновил, регексп теперь с альтернативными группами
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@alexxandr
you'll see in memory only 0xDEADFACE
(.+?)ГРУППА
Ответ написан
Комментировать
Lobotomist
@Lobotomist
Software Developer
Нужную последовательность нужно сгруппировать с помощью скобок. Конструкция (?=) означает, что то, что в скобках не будет являться частью найденного совпадения.
^.+(?=\s\w)

Можно сделать так:
^(.+)\s\w
Но в этом случае интересующая вас часть строки будет в первой группе, а полное совпадение будет вместе с пробелом и буквой на конце.

Рекомендую два сервиса, в которых удобно проверять регулярные выражения:
* pcre.ru (пример для вашего случая)
* regex101.com
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
Positive lookahead.
$re = '(.+?)(?=[,;]+)'; // второе условие модифицируйте и забирайте данные
Ответ написан
Комментировать
Ivanq
@Ivanq
Знаю php, js, html, css
/^.*(?=[,;])/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы