Я хочу создать регулярное выражение, где появление одной группы зависит от того, была ли найдена другая определенная группа. Я думаю, что это проще проиллюстрировать на примере!
Я хочу разрешить два шаблона, проиллюстрированные этими двумя примерами: JsJh
, JJ
.
Это не разрешено: JsJs
, JsJ
, JQ
.
Таким образом, если пользователь вводит одну маленькую букву после первой заглавной буквы, регулярное выражение ожидает другую маленькую букву после второй заглавной буквы, но это не должно быть той же буквой, что и первая!
Я соответствую первому (Js), как это: ([123456789TJQKA]){1}([dsch]?){1}
Вторая заглавная буква соответствует (\\2)
.
Теперь я не могу найти решение для последней маленькой буквы. Я могу заставить маленькие буквы соответствовать (что, конечно, не то, что я хочу), но как мне, если она присутствует, исключить первую букву из последней группы, все еще позволяя (и ожидая) одну из трех оставшихся маленьких буквы?