RegExp VBA: неохотный квантификатор не возвращает значение подстать - PullRequest
0 голосов
/ 15 января 2020

У меня есть следующий шаблон 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 пуст для двух совпадений. Кто-нибудь может объяснить? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...