Regex для буквенно-цифровых символов и символа + - PullRequest
3 голосов
/ 20 июля 2009

Мне нужно регулярное выражение, которое допускает только буквенно-цифровые символы плюс + и -.

Сейчас я использую:

[^\w-]

Ответы [ 6 ]

9 голосов
/ 20 июля 2009

Следующий шаблон будет соответствовать строкам, которые содержат только буквы, цифры, '+' или '-', включая международные символы, такие как 'å' или 'ö' (и исключая символ '_', который включен в '\w):

^[-+\p{L}\p{N}]+$

Примеры:

string pattern = @"^[-+\p{L}\p{N}]+$";
Regex.IsMatch("abc", pattern); // returns true
Regex.IsMatch("abc123", pattern); // returns true
Regex.IsMatch("abc123+-", pattern); // returns true
Regex.IsMatch("abc123+-åäö", pattern); // returns true
Regex.IsMatch("abc123_", pattern); // returns false
Regex.IsMatch("abc123+-?", pattern); // returns false
Regex.IsMatch("abc123+-|", pattern); // returns false
4 голосов
/ 20 июля 2009

Это регулярное выражение будет соответствовать только в том случае, если вы проверяете его по строке, содержащей буквенно-цифровые символы и / или + / -:

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

Чтобы использовать это:

if (Regex.IsMatch(input, @"^[a-zA-Z0-9\-+]+$"))
{
    // String only contains the characters you want.
}
1 голос
/ 20 июля 2009

Соответствует одиночному -, + или буквенно-цифровому:

[-+a-zA-Z0-9]

Соответствует любому числу -, + или буквенно-цифровому:

[-+a-zA-Z0-9]*

Соответствует строке / строке, состоящей из букв -, + или буквенно-цифровых символов:

^[-+a-zA-Z0-9]*$
1 голос
/ 20 июля 2009

Вы должны экранировать - char: [\w\-+] для одного символа и [\w\-+]+ для большего.

1 голос
/ 20 июля 2009

Попробуйте это:

[a-zA-Z0-9+\-]
0 голосов
/ 20 июля 2009

[A-Za-Z0-9 \ + \ -]

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