2009-04-24 10 views
0

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

+0

На каком языке вы говорите? – cgp

+0

try google first mr "unknown" есть буквально лотки информации о регулярном выражении там, буквально на любом языке. – gnomed

ответ

4

Попробуйте

"^.*[a-zA-Z].*$" 

Это будет работать с большинством регулярных выражений двигателей. Однако он ограничен алфавитными символами ASCII. Для международных символов нам нужно знать, что связано с двигателем регулярного выражения.

+0

Прошу прощения, это правильный ответ на 100%. Потребуется объяснение для голосования. – JaredPar

+2

Я не могу на самом деле * объяснить * это, поскольку это было не мое, но у вас там довольно неэффективное регулярное выражение. Большинство механизмов регулярных выражений предоставляют метод поиска соответствия в любой точке строки, и в этом случае ответ thinkcube является лучшим выбором. Методы, привязанные к началу строки, по-прежнему не нуждаются в явном виде, и конечный якорь никогда не понадобится, оставив вас с '. * [A-zA-Z]'. –

+0

@Ben - да, это было так, и если предположить, что алфавит a-z. – Alnitak

1

Стандартный матч POSIX для алфавитных символов:

[[:alpha:]] 

.net эквивалент

[\p{L}] 

где это MS ярлык для Unicode-х 5 различных классов букв, которые также поддерживаются Java:

[\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}] 

Обратите внимание, что это также должно соответствовать любые символы, буквенные, а не только обычного латинского алфавита в «[a-zA-Z]» множество, и, следовательно, также соответствует акцентированных символов и т.д.

+0

[[: alpha:]] не поддерживается широко. Python, JavaScript и .NET (совсем рядом с моей головой) не поддерживают его. Я считаю, что только PCRE и POSIX. –

0

[a-zA-Z] или даже [a-z] если вы передаете параметр без учета регистра в ваш механизм регулярных выражений.

+0

не уверен, почему это было отклонено, +1 – gnomed

3

Не забывайте, что определение «алфавитный символ» не является таким же во всем мире. Например, в Норвегии правильное регулярное выражение - [a-zA-ZæøåÆØÅ].

Смежные вопросы