Наличие меняющегося символа в регулярном выражении с 2 вариантами - PullRequest
0 голосов
/ 03 марта 2020

Я использую регулярное выражение для определения URL с помощью gorilla mux :

/v2/operations/{operation:(?:ACC00000)\\d+}/meters

Этот URL изначально должен совпадать с ACC00000xxx, где xxx - целое число. Это регулярное выражение работает. (например, ACC00000354)

Теперь третий символ также может быть I. Я попытался заменить его на ? или изменить его на [C|I], но я не могу сделать так, чтобы он совпадал с двумя вариантами:

  • ACC00000123
  • ACI00000234

Есть идеи, почему он не работает?

Ответы [ 2 ]

3 голосов
/ 03 марта 2020

Вам нужно это

AC[CI]00000\d+

"?" обозначает, что символ присутствует один или ноль раз. ? НЕ означает какого-либо персонажа. «[CI]» означает из двух символов C или я должен соответствовать. Любой символ обозначается точкой ".". Это также будет работать

AC.00000\d+

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

https://regex101.com/r/UKHGFo/2

0 голосов
/ 03 марта 2020

[C|I] это означает, что соответствует C или | или I

Вы должны использовать (?:C|I) или (?:(?:ACC|ACI)00000))

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