Смотря, чтобы получить соответствие от определенной строки до следующего периода. Я не могу понять синтаксис правильно. Я могу заставить его работать от строки до последнего символа, но не до следующего.
Ex . У кошки 4 ноги. Осьминог имеет 8 ног. Паук имеет 6 ног.
Глядя между «кошкой» и первым периодом. "имеет 4 ноги".
Пробовал: кошка (? S) (. *). но это дает мне весь результат вплоть до последнего периода.
Также пробовал: (? <= Cat) (. *) (? =.), Но тоже результат.
3 ответа
Вы хотите ленивый квантификатор на .*
, а также чтобы избежать периода:
cat(.*?\.)
Вы можете менее загадочно сопоставить «не точку», начиная с взгляда сзади:
(?<=cat)[^.]*
В котором нет групп - ваша цель - все совпадение.
Если вы не возражаете против групп или ваш движок регулярных выражений не поддерживает взгляды:
cat([^.]*)
И ваша цель захвачена как группа 1.
Я использовал lookbehind =
(?<=cat)
И с нетерпением
(?=\. )
С ленивым квантификатором: (.*?)
Если бы тогда использовался только (. *), Он бы соответствовал:
имеет 4 ноги. Осьминог имеет 8 ног
Regex, который будет работать:
(? <= кошка) (. *?) (? =.)
Смотрите этот аналогичный ответ: Regex Совпадение всех символов между двумя строками
Похожие вопросы
Связанные вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки, синтаксического анализа и преобразования строк. Поскольку регулярные выражения не полностью стандартизированы, все вопросы с этим тегом должны также включать тег, определяющий применимый язык программирования или инструмент.