Вы можете определить в классе символов либо все символы/диапазоны символов/Юникод-свойства/блоки, которые вы хотите разрешить, или вы не хотите разрешать.
[abc]
класс символов, который позволяет и б и
[^abc]
является инвертированный символьный класс, который соответствует всем, но не или б или
Здесь в вашем случае я бы так, нет необходимости определять каждый символ:
^[\P{L}A-Za-z]*$
Матч с самого начала и до конца строки все, что не письмо [^\p{L}]
или A-Za-z
.
\p{L}
Это свойство Юникод и соответствует всем, что имеет письмо о свойствах. \P{L}
- это версия с отрицанием, все, что не является буквой.
код теста:
string[] StrInputNumber = { "34556#%42%$23$%^*&sdfsfr", "asdf!\"§$%&/()=?*+~#'", "34556#%42%$23$%^*&בלה בלה", "öäü!\"§$%&/()=?*+~#'" };
Regex ASCIILettersOnly = new Regex(@"^[\P{L}A-Za-z]*$");
foreach (String item in StrInputNumber) {
if (ASCIILettersOnly.IsMatch(item)) {
Console.WriteLine(item + " ==> Contains only ASCII letters");
}
else {
Console.WriteLine(item + " ==> Contains non ASCII letters");
}
}
Некоторые более простые объяснения: регулярные выражения What absolutely every Programmer should know about regular expressions
Так "наивным" английское слово для вас? – Joey
@Joey - нет, только 'az' или' AZ' – SexyMF
@MitchWheat - я знаю только базовый RegEx ... – SexyMF