Еще несколько критериев регулярных выражений в существующих регулярных выражениях - PullRequest
2 голосов
/ 09 июля 2019

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

^[\p{L}\d'][ \p{L}\d'-]*[\p{L}\d'-']$
  1. Должно начинаться только с буквы (AZ или az).
  2. Может принимать только одну буквутакже.
  3. Принимать дефис (-), пробел, точку (.) между строкой или концом строки.(Никаких других специальных символов)
  4. Принимайте числа между и в конце строки.

Пожалуйста, также хотите достичь существующих критериев, что делает это регулярное выражение.

Например,

Ожидается -

t, T, test, test123, te12st, te-st, te.st, te st, éééééé, ṪỲɎɆḂɃɀȿȸȺȔȐȳɊÉâÇë, Επίθετο

Не ожидается -

12test, 1, .test, -test, , tes*t (none of the special character except hyphen, dot & space),  

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Чтобы соответствовать ожидаемому, а не ожидаемому, включая одну букву, вы можете сопоставить \pL с начала строки.Затем повторите 0+ раз любой из перечисленных в [\d\pL .-], а затем подтвердите конец строки.

Обратите внимание, что не все ваши ожидания начинаются с a-zA-Z.

^\pL[\d\pL .-]*$

В Java

String regex = "^\\pL[\\d\\pL .-]*$";

Regex demo | Демонстрация Java

0 голосов
/ 09 июля 2019
^[A-Za-z]+[\p{L}\d-.\s]*$

Это возможное решение, однако эти критерии тестирования противоречат вашему первому требованию: ééééééé, ṪỲɎɆḂɃɀȿȸȺȔȐȳɊÉâÇë, Επίθετο.Если он 1) принимает один или несколько из A-Za-z, то 2) ноль или более комбинаций букв, цифр, дефисов, пробелов и периодов.

Если вы хотите, чтобы он также принимал эти три критерия тестатогда это возможное решение:

^[\p{L}]+[\p{L}\d-.\s]*$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...