Регулярное выражение с числами и алфавитами обязательно, специальные символы необязательны - PullRequest
1 голос
/ 09 июля 2020

В моем приложении для значения edittext нужен хотя бы один di git, и один алфавит является обязательным, а некоторые специальные символы являются необязательными, например, «.- », как и любой знак в строке. Например ram123- . или r_m-12.m или - ram123 или ram123.-_. Для этого мне нужно регулярное выражение. Я уже пробовал с этим

str_userId.matches("[A-Za-z0-9]*+[?.?_?-]")

Но не работает. Здесь, как добавлять специальные символы, необязательно.

Спасибо, заранее

1 Ответ

1 голос
/ 09 июля 2020

Вы можете использовать положительный просмотр вперед (?=, чтобы подтвердить хотя бы одно вхождение az и после этого сопоставить хотя бы одно di git [0-9].

До и после сопоставления di git, вы можете добавить . _ и - к классу символов [A-Za-z._-]* и повторить это 0+ раз.

Обратите внимание, что класс символов соответствует одному из перечисленных символов. Это обозначение [?.?_?-], которое можно было бы записать как [?._-], также будет соответствовать вопросительному знаку вместо того, чтобы делать другие необязательными

^(?=[^a-z\n]*[a-z])[A-Za-z._-]*[0-9][A-Za-z0-9._-]*$

Regex demo

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