c# - телефона - регулярные выражения синтаксис




Как сопоставить дефисы с регулярным выражением? (4)

[-a-z0-9] +, [a-z0-9 -] +, [az-0-9] +, а также [az-0-9] + все одинаковы. Дефис между двумя диапазонами, рассматриваемый как symbol.And также [a-z0-9 - + ()] + это регулярное выражение разрешает дефис.

Как переписать [a-zA-Z0-9!$* \t\r\n] в соответствие с дефисами вместе с существующими символами?


Дефис обычно является нормальным символом в регулярных выражениях. Только если он находится в классе символов и между двумя другими символами, это имеет особое значение.

Таким образом:

  • [-] соответствует дефису.
  • [abc-] соответствует a , b , c или дефис.
  • [-abc] соответствует a , b , c или дефис.
  • [ab-d] соответствует a , b , c или d ( только здесь дефис обозначает диапазон символов).

Побег дефиса.

[a-zA-Z0-9!$* \t\r\n\-]

ОБНОВЛЕНИЕ :
Не обращайте внимания на этот ответ - вы можете добавить дефис в группу, но вам не нужно его избегать. См . Ответ Конрада Рудольфа, который намного лучше отвечает и объясняет, почему.


Это то, что вам нужно?

MatchCollection matches = Regex.Matches(mystring, "-");






regex