тест регулярного выражения ruby ​​для точного соответствия строки - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь написать регулярное выражение для точного соответствия, если строка является идентификатором Монго, а не если строка содержит идентификатор Монго. Мое регулярное выражение для идентификатора Монго

/[a-z,0-9]{24}/

, который прекрасно работает, но я не могу понять, как написать регулярное выражение, которое, например, отклоняет URL-адрес, содержащий идентификатор Монго. Итак, я получаю это, что не то, что я хочу:

pattern = /[a-z,0-9]{24}/
str1 = "589ab375c3c6416310171b5b"
str2 = "http://somewhere.com/589ab375c3c6416310171b5b?review"
str1.match pattern

Выход:

#<MatchData "589ab375c3c6416310171b5b">

И вторая строка

str2.match pattern

выход:

#<MatchData "589ab375c3c6416310171b5b">

Я хочу, чтобы первое совпадало, а второе - нет.

Спасибо за любую помощь, Кевин

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

В качестве примера вы можете использовать якоря \A и \z. Данные не содержат запятой, поэтому вы можете опустить ее в классе символов .

Например:

pattern = /\A[a-f0-9]{24}\z/

Демо

0 голосов
/ 04 ноября 2018

Вы можете использовать ^ и $, чтобы точно соответствовать всей строке. ^ соответствует началу строки, а $ соответствует концу. Итак:

/^[a-z,0-9]{24}$/

будет соответствовать строке, содержащей только 24 символа идентификатора Монго.

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