2009-02-12 5 views
0

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

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

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

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

+0

Есть ли какая-то странность в VB.NET? Я не знаю, что это требует от вас одиночной цитаты всех персонажей? –

+4

Plz не использует «Plz». Просто скажите «пожалуйста». –

+0

Пожалуйста, не используйте «Plz», когда вы просите кого-то не использовать «Plz» @RobRingham :) –

ответ

3

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

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

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

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

+0

Спасибо..работал просто отлично :) – Maen

3

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

1

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

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

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

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

1

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

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