Как написать регулярное выражение, чтобы соответствовать только цифры, буквы и тире? - PullRequest
2 голосов
/ 11 июля 2010

Мне нужно выражение, которое будет принимать только:

  • числа
  • нормальные буквы (без специальных символов)
  • -

Пробелы также не допускаются.

Пример: Регулярное выражение должно соответствовать:
this-is-quite-alright

Не должно совпадать
this -is/not,soålright

Ответы [ 3 ]

14 голосов
/ 11 июля 2010

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

^[A-Za-z0-9-]*$

Это соответствует строкам, возможно, пустым, которые полностью состоят из прописных / строчных букв (ASCII AZ), цифр (ASCII 0-9) и тире.

Это соответствует ( как видно на rubular.com ):

this-is-quite-alright
and-a-1-and-a-2-and-3-4-5

yep---------this-is-also-okay

И отклоняет:

this -is/not,soålright
hello world

Объяснение:

  • ^ и $ - соответственно начало и конец якоря строки
    • Если вы ищете совпадения в строке, то якоря вам не нужны
  • [...] - это класс символов
    • a-z, A-Z, 0-9 в классе символов определяют диапазоны
    • - как последний символ вкласс - буквальная черта
  • * - повторение ноль или более

регулярные выражения.info


Изменение

Спецификация не ясна,но если - используется только для разделенияrds ", то есть без двойного тире, без концевого тире, без предшествующего тире, тогда шаблон более сложный (только слегка!)

  _"alpha"_    separating dash
 /         \  /
^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$
 \__________/| \__________/|\
    "word"   |    "word"   | zero-or-more
             \_____________/
              group together

Это соответствует строкам, состоящим хотя бы из одного" слова ", где словасостоит из одного или нескольких «альфа», где «альфа» состоит из букв и цифр.Далее могут следовать «слова», и они всегда разделяются тире.

Это соответствует (, как видно на rubular.com ):

this-is-quite-alright
and-a-1-and-a-2-and-3-4-5

Иотклоняет:

--no-way
no-way--
no--way
0 голосов
/ 12 июля 2010

Это вики сообщества, попытка собрать ссылки на связанные вопросы по этой теме "URL / SEO slugged".Сообществу предлагается внести свой вклад.

Похожие вопросы

Связанные теги

0 голосов
/ 11 июля 2010
[A-z0-9-]+

Но ваш вопрос сбивает с толку, так как он запрашивает буквы и цифры и имеет пример, содержащий тире.

...