Regex для нескольких открытых фраз в строке, используя preg_match_all () - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть длинная строка, которую я хотел бы проанализировать для одного или нескольких совпадений.

Каждое совпадение начнется с имени "Джон" или "Июль ie", перед текстом должен быть текст второе совпадение «коричневый» или «красный», а затем оставшийся текст после этого совпадения, перед точкой ИЛИ дополнительный экземпляр совпадения достигнут.

Например, эта строка:

John likes brown cows and Julie eats red apples and tomatoes. I KNOW John hates red dates that are bruised but John likes red.

Даст эти 4 матча

John likes brown cows and

Julie eats red apples and tomatoes.

John hates red dates that are bruised but

John likes red.

Я пробовал что-то подобное, и это слишком жадно. Первое совпадение соответствует всему.

(John|Julie).*?(brown|red).*[.]+

Что мне нужно использовать для preg_match_all () в PHP?

Нужно ли использовать lookahead / lookbehind

...