Регулярное выражение: сопоставление строки только в том случае, если она содержит какие-либо буквенные символы.
Вопрос
примеры строк
785*()&!~`a
##$%$~2343
455frt&*&*
я хочу запечатлеть первое и третье, но не второе, так как они не содержат символов алфавита, пожалуйста, помогите
Решение
На самом деле, я думаю [a-zA-Z]
может быть достаточно для соответствия вашим строкам.
Чтобы запечатлеть все это, попробуйте: ^.*[a-zA-Z].*$
Другие советы
Вот один из возможных способов:
.*[a-zA-Z]+
Возможно, вам следует немного уточнить, что вы подразумеваете под «очисткой кошек»:вам нужна вся строка, состоящая только из битов ascii?
Кроме того, вы не говорите, должен ли он соответствовать простому латинскому алфавиту (от A до Z) или должен также соответствовать символам Юникода для соответствия строкам на других языках.
Если вам просто нужно проверить строку, на С# вы должны сделать:
bool matching = Regex.IsMatch(myString, "[a-zA-Z]");
Вам больше ничего не понадобится, поскольку всего одна буква в любом месте myString
строка будет соответствовать (согласно вашему определению).
Это мой любимый сайт тестирования RegEx: Тестер регулярных выражений Javascript и шпаргалка
Если вы хотите сопоставить все буквы (включая не-ascii), используйте p{L}
вместо [a-zA-Z]
.Видеть Категории Юникода.