Regex - соответствует строке только тогда, когда она содержит алфавитные символы - PullRequest
2 голосов
/ 02 марта 2009

пример строки

785*()&!~`a

##$%$~2343

455frt&*&*

Я хочу захватить первое и третье, но не второе, поскольку оно не содержит символов алфавита. Plz help

Ответы [ 5 ]

5 голосов
/ 02 марта 2009

На самом деле, я думаю, [a-zA-Z] может быть достаточно, чтобы соответствовать вашим строкам.

Чтобы захватить все, попробуйте: ^.*[a-zA-Z].*$

3 голосов
/ 02 марта 2009

Вот один из возможных способов:

.*[a-zA-Z]+
2 голосов
/ 02 марта 2009

Возможно, вам следует немного уточнить, что вы подразумеваете под "catpuring": хотите ли вы целую строку только битов ascii?

Кроме того, вы не говорите, должен ли он соответствовать простому латинскому алфавиту (от A до Z) или же он должен также соответствовать символам Unicode, чтобы соответствовать строкам в других языках.

Если вам просто нужно проверить вашу строку, в C # вы должны сделать:

bool matching = Regex.IsMatch(myString, "[a-zA-Z]");

Вам больше ничего не понадобится, поскольку в строке myString будет совпадать только одна буква (в соответствии с вашим определением).

0 голосов
/ 13 января 2014

Если вы хотите сопоставить все буквы (включая не-ascii), используйте p{L} вместо [a-zA-Z]. Смотрите Unicode категории .

0 голосов
/ 02 марта 2009

Это мой любимый сайт тестирования RegEx: Javascript Regexp Tester и шпаргалка

...