Я пытаюсь предотвратить совпадение привязки \G с началом строки. Я хочу, чтобы он совпадал только в конце последнего совпадения с регулярным выражением.
Учитывая следующий текст:
Pig, Cow, Goat
fruit: apple, orange, peach, pear
vegetable: Carrot, Lettuce, Cellery
И этот узор:
(fruit:|\G)([\w]+|[\, ])
Я хочу, чтобы он соответствовал только словам после «фруктов:», но мне нужно, чтобы он фиксировал каждое слово по отдельности. Если я просто поставлю + в самом конце этого шаблона, он будет соответствовать всем словам после «фруктов:», но будет захватывать только «грушу», поскольку каждая итерация + топчет последнюю.
Вот в чем проблема. Этот шаблон работает, за исключением того, что он также соответствует «Свинья, корова и коза», потому что \G будет соответствовать концу последнего совпадения ИЛИ началу всей строки. Как я могу предотвратить совпадение с началом всей строки?
Я использую PCRE в PHP, и я использовал Rubular.com, чтобы помочь мне сделать быстрые тесты.