Помощь в написании РЕГЭКС - PullRequest
0 голосов
/ 02 июня 2011

Я должен принять пользовательский ввод из формы HTML в этом формате (field1) (пробел) (field2), где и field1, и field2 являются строками, но есть ограничения:

  • field1 & field2 не могут быть целыми числами
  • они должны быть буквенно-цифровыми
  • они не должны начинаться с одного и того же символа

Обратите внимание, что этот шаблон может повторяться, например:
abc def ghi jkl

1 Ответ

3 голосов
/ 03 июня 2011

field1 & field2 не могут быть целыми числами

(?!\p{Digit}+\b)

они должны быть буквенно-цифровыми

и предположительно непустыми

\p{Alnum}+

они не должны начинаться с одного и того же символа

требует захвата первого символа в группе захвата, поэтому приведенное выше становится

(\p{Alnum})\p{Alnum}*

и вынужен негативный взгляд

(?!\1)

Собрав все вместе и разрешая разделение, вы можете использовать следующее

Pattern.compile("^\\s*(?:(?!\\p{Digit}+\\b)(?!\1)(\\p{Alnum})\\p{Alnum}*\\s*)+\\Z");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...