У меня есть следующий шаблон RegExp:
A\.B\.(.+?)\.(\d{3}) (.*)
Если я проверю следующую строку:
A.B.Prop.001 Blabla
Тогда я получу правильные значения:
Match 1
Submatch 1 : Prop
Submatch 2 : 001
Submatch 3 : Blabla
Теперь я проверяю следующую строку:
A.B.Prop.001 Blabla A.B.Desc.032 Blablabla
Затем получаю
Match 1
Submatch 1 : Prop
Submatch 2 : 001
Submatch 3 : Blabla A.B.Desc.032 Blablabla
Я получаю только одно совпадение, я думаю, это потому, что последний (. *) В шаблоне жадный, поэтому я заменяю его неохотной опцией:
A\.B\.(.+?)\.(\d{3}) (.*?)
и снова тестирую последнюю полную строку. Вот что я получаю:
Match 1
Submatch 1 : Prop
Submatch 2 : 001
Submatch 3 :
Match 2
Submatch 1 : Desc
Submatch 2 : 032
Submatch 3 :
Субматч № 3 пуст для двух совпадений. Кто-нибудь может объяснить? Спасибо