Непростое сопоставление регулярных выражений - PullRequest
1 голос
/ 26 февраля 2020

Я надеялся, что некоторые специалисты по Regex смогут мне помочь с этим. У меня есть несколько примеров, которым я хотел бы соответствовать:

fooenvwesteucontainerregistry.azurecr.io
http://healthcheck-env-westeu-container.westeurope.azurecontainer.io
https://foo-env2-westeu-app-myapp.azurewebsites.net
https://foo-io9-westeu-app-myapp.azurewebsites.net
http://healthcheck-env-westeu-container.westeurope.azurecontainer.io

Я хотел бы иметь регулярное выражение, которое соответствует "env", "env2" и "io9". На мой взгляд, «westeu» является своего рода якорем, и я попытался сопоставить его, основываясь на этом. Самое близкое, что я получил, это использование (?<=foo)(-?)(\w+)(-?)(westeu), но оно не работает в тех случаях, когда "foo" не появляется.

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

Спасибо!

1 Ответ

2 голосов
/ 26 февраля 2020

Вы можете использовать

(?:foo)?-?(\w+)-?westeu

См. Демо regex и график Regulex :

enter image description here

Подробности

  • (?:foo)? - дополнительная строчная строка foo
  • -? - дополнительная -
  • (\w+) - Группа 1: одна или несколько букв, цифр, _
  • -?westeu - необязательно -, а затем westeu
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...