Golang регулярное выражение для требования нескольких групп захвата - PullRequest
0 голосов
/ 28 апреля 2020

Я уверен, что упускаю что-то очевидное, но я пытаюсь сопоставить несколько групп захвата, требуя одну из каждой, и не вижу, что не так. Это регулярное выражение для Golang.

Дано:

abc.com
abc.com/help
abc.com/win
abc.com/lose
abc.com/lose/wowyoulost
www.abc.com/win
www.abc.com/really/you/win
cde.com
cde.com/win

И регулярное выражение:

(abc\.com)+(win|lose)+

Я пытаюсь потребовать 1 или более из первой группы и 1 или более из второй группы. Ожидаемый результат должен быть:

abc.com - NO MATCH
abc.com/help - NO MATCH
abc.com/win - MATCH
abc.com/lose - MATCH
abc.com/lose/wowyoulost - MATCH
www.abc.com/win - MATCH
www.abc.com/really/you/win - MATCH
cde.com - NO MATCH
cde.com/win - NO MATCH

Что я делаю не так?

1 Ответ

1 голос
/ 28 апреля 2020

Вам нужен ленивый квантификатор : .*?:

abc\.com/.*?(win|lose)

См. https://regex101.com/r/STl8t7/1

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