Регулярное выражение: сопоставление строки только в том случае, если она содержит какие-либо буквенные символы.

StackOverflow https://stackoverflow.com/questions/601554

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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].Видеть Категории Юникода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top