Проверка правильности выражения - PullRequest
0 голосов
/ 12 февраля 2009

Я работаю с ASP.NET 3.5, VB.NET и пытаюсь проверить некоторые входные данные с помощью регулярного выражения.

Мое выражение:

^[a-zA-Z'_''-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$

И это работает для всех специальных символов, которые я включил, за исключением " - ". Это просто не работает. Я пробовал Internet Explorer и Firefox, та же проблема. Как это можно исправить?

Ответы [ 4 ]

3 голосов
/ 12 февраля 2009

Почему все одинарные кавычки? Они не нужны.

^[-a-zA-Z_/\\@&.,çÇöÖIiiIgGsSüÜ\s\d]{1,50}$
  ^        ^^

Переместите «-» в начало или конец класса символов, чтобы он был распознан. Кроме того, обратная косая черта должна быть экранирована правильно, иначе вы не сможете сопоставить обратную косую черту.

См. Отметки «^» выше.

3 голосов
/ 12 февраля 2009

Символ - имеет особое значение в этом контексте. Удалите его с помощью обратной косой черты или укажите в качестве последнего символа в блоке.

1 голос
/ 12 февраля 2009

Вы должны покинуть символ -, поместив \ перед ним. Тогда регулярное выражение станет

^[a-zA-Z'_''\-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$  
1 голос
/ 12 февраля 2009

В группе символов регулярного выражения [...] знак минус означает диапазон, определяющий диапазон допустимых символов. Полезно, если у вас много последовательных символов (все буквы, цифры и т. Д.) И вы не хотите перечислять их все.

Пример: [0-9] Это будет соответствовать всем цифрам 0, 1, 2, 3, 4, 5, 6, 7, 8 или 9, но не знак минус.

Чтобы сопоставить знак минус напрямую, поставьте перед ним обратную косую черту:

Пример: [0\-9] Это будет соответствовать цифре 0, знаку минус или цифре 9.

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