Как я могу определить, что строка содержит хотя бы один буквенный символ? - PullRequest
1 голос
/ 25 апреля 2009

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

Ответы [ 5 ]

4 голосов
/ 25 апреля 2009

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

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

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

3 голосов
/ 25 апреля 2009

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

3 голосов
/ 25 апреля 2009

Вот оно:

[a-zA-Z]
1 голос
/ 25 апреля 2009

Стандартное соответствие POSIX для буквенных символов:

[[:alpha:]]

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

[\p{L}]

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

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

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

0 голосов
/ 25 апреля 2009

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

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