Regex возвращает одиночный матч, начиная с начала строки - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть текст, который выглядит примерно так (но, конечно, намного уродливее):

On 9/02/2019, 9/03/2019 and 9/05/2019 this thing happened

, и я хотел бы отразить все, что связано с датой

On 9/02/2019, 9/03/2019 and 9/05/2019

Использование regex

([a-zA-Z ]{0,5}(?:\d+\/)+\d+\s*(?:,|and|\s)+)

это, кажется, работает нормально (позволяя первым 5 символам строки быть ведущими словами).

Но когда я говорю это, я хочу начать только с начала строки с

^([a-zA-Z ]{0,5}(?:\d+\/)+\d+\s*(?:,|and|\s)+)

Он только захватывает On 9/02/2019,.

Строки, начинающиеся с событие, за которым следует дата, которую мне нужно будет трактовать по-разному

He was walking when he encountered a stray dog on 9/2/19

https://regex101.com/r/p4H10Z/1

1 Ответ

0 голосов
/ 20 февраля 2020

Спасибо за быстрые ответы. Я надеялся выяснить, как сделать это одним матчем. Теперь я вижу. Группировка всех совпадений дат в другой группе, которая может быть повторена, делает работу.

^([a-zA-Z ]{0,5}((?:\d+\/)+\d+\s*(?:,|and|\s)+)+)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...