.NET RegEx для букв и пробелов - PullRequest
5 голосов
/ 01 июня 2010

Я пытаюсь создать регулярное выражение в C #, которое допускает только буквенно-цифровые символы и пробелы. В настоящее время я пытаюсь следующее:

string pattern = @"^\w+$";
Regex regex = new Regex(pattern);
if (regex.IsMatch(value) == false)
{
  // Display error
}

Что я делаю не так?

Ответы [ 5 ]

21 голосов
/ 01 июня 2010

Если вам нужен только английский, попробуйте следующее регулярное выражение:

"^[0-9A-Za-z ]+$"

В скобках указан набор символов

0-9: все цифры

A-Z: все заглавные буквы

a-z: все строчные буквы

' ': пробелы

Если вам нужен юникод / ​​интернационализация, вы можете попробовать это регулярное выражение:

"^[\\w ]+$"

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

Обратите внимание, что для обоих регулярных выражений я включил операторы ^ и $, которые означают совпадение в начале и в конце. Если вам нужно извлечь это из строки, а она не должна быть всей строкой, вы можете удалить эти два оператора.

6 голосов
/ 24 января 2014

попробуйте это для всех букв с пробелом:

@"[\p{L} ]+$"
4 голосов
/ 01 июня 2010

Если, кроме 0-9, az и AZ, вам также необходимо закрыть любые акцентированные буквы, такие как ï, é, æ, Ć или Ş, тогда вам лучше использовать свойства Unicode \p{...} для сопоставления, т.е. пробел):

string pattern = @"^[\p{IsLetter}\p{IsDigit} ]+$";
4 голосов
/ 01 июня 2010

Класс символов \w не соответствует пробелам. Попробуйте заменить его на [\w ] (после \w есть пробел, чтобы соответствовать символам и пробелам в слове. Вы также можете заменить пробел на \s, если хотите найти какой-либо пробел.

0 голосов
/ 26 июня 2014

Это регулярное выражение прекрасно работает для меня.

           Regex rgx = new Regex("[^a-zA-Z0-9_ ]+");
            if (rgx.IsMatch(yourstring))
            {
                var err = "Special charactes are not allowed in Tags";
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...