Проблема с регулярным выражением в .NET (C #) - PullRequest
0 голосов
/ 05 мая 2010

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

  • Должен начинаться с a-z (без учета регистра)
  • Должен содержать только a-z A-Z 0-9. -

Я собрал что-то, основываясь на моих ограниченных знаниях, и проверил его с помощью инструмента онлайн-тестирования для целого ряда ситуаций, и результаты были, как я надеялся, однако, когда я помещаю шаблон в мой код .NET, он не ' не соответствует правильно.

Шаблон, который я использую,

[A-Za-Z] [A-Za-Z0-9 \ -.] *

Это правильный шаблон или я лаю не на том дереве?

Некоторые примеры того, что я ожидаю.

  • craig.bovis - VALID
  • 24craig - НЕВЕРНЫЙ
  • Крейг @ Бовис - НЕВЕРНЫЙ
  • craig24 - ДЕЙСТВИТЕЛЬНО
  • -craig24 - НЕВЕРНЫЙ
  • craig24.bovis-test - VALID

1 Ответ

4 голосов
/ 05 мая 2010

Ты рядом. Вам нужно привязать совпадение к началу и концу строки:

^[a-zA-Z][a-zA-Z0-9.\-]*$

^ означает «начало строки», а $ означает «конец строки». Без них выражение будет совпадать где угодно в строке.

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