2012-01-26 3 views
2

Я создал следующее выражение регулярного выражения для моего файла C#. Bascily Я хочу, чтобы пользователь вводил только обычные символы (A-Z нижний или верхний) и цифры. (пробелы или символы).Regex Expression Only Numbers and Characters

[A-Za-Z0-9]

По какой-то причине это только терпит неудачу, когда его символ на своих собственных. если эти символы смешаны с ним, тогда выражение проходит.

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

Спасибо!

+2

Возможно, вы забыли о плюсе? [a-zA-Z0-9] + –

ответ

6

Проблема в том, что она может соответствовать где угодно. Вам нужны якоря:

^[a-zA-Z0-9]+$ 
+0

Удивительно, что это было Спасибо! – Johnston

+0

Я знаю, что вы уже ответили на мой вопрос, но теперь я пытаюсь сделать первый символ в верхнем регистре. Я пробовал это, что я нашел в Интернете, но он, похоже, не работает при использовании ввода в верхнем регистре:^[A-Z] [a-zA-Z0-9] + $ – Johnston

+0

Это выглядит отлично ... вы вводите одну заглавную букву? Это должно быть '^ [A-Z] [a-zA-Z0-9] * $' вместо этого. – Ryan

1

Вы обязательно проверите всю строку? То есть вы используете выражение типа ^[a-zA-Z0-9]*$ где ^ означает начало строки и $ означает конец строки?

2

Это регулярное выражение будет соответствовать каждому алфавитно-цифровому символу в строке в виде отдельных совпадений.

Если вы хотите, чтобы убедиться, что вся строка пользователь ввел только имеет буквенно-цифровые символы, которые вы должны сделать что-то вроде:

^[a-zA-Z0-9]+$ 
2

Это потому, что он будет соответствовать любому символу в строке вам нужно следующее. Заставляет его соответствовать всей строке, а не только ее части

^[0-9a-zA-Z]*$