Я просто сопоставил строку с регулярным выражением.Поиск дубликатов в группе захвата RegEx?
Я хочу совместить строку, содержащую 3 комбинации букв/цифр. Он может содержать A, B или L, следующий цифрой 1-3. (в случае L, 1-4)
Мой вопрос: Я не хочу соответствовать строке, когда письмо соответствует несколько раз. Таким образом, A, B и L могут возникать только один раз.
Мое выражение до сих пор:
(?:[A|L|B](?(?<=L)[1-4]|[1-3])){3}
Teststrings, которые соответствуют в данный момент:
L2B1A3
B2L1A2
A1B1L4
A1A2A3
строк, которые не соответствуют в данный момент:
L4B4A1 (Only L can have a digit that's 4)
L2A1B (Missing digit)
Строки, которые я не соответствуют (совпадение сейчас):
A2A2A3 (The A, B and L only may occur one time!)
Как насчет этого '^ (?!. * [AB] 4) ([ALB]) [1-4] (?: (?! \ 1) ([ALB]) [1-4]) (? : (?! \ 1 | \ 2) ([ALB]) [1-4]) $ '? demo https://www.regex101.com/r/VKGj0q/1 –
@ WiktorStribiżew он не хочет соответствовать 'A1A2A3' –
@AvinashRaj: Если бы вопрос был ясен, я бы опубликовал ответ. Возможно, OP нуждается в ['^ (?! ([ALB]). * \ 1) (?: [AB] [1-3] | L [1-4]) {3} $'] (https: // regex101 .com/г/uZflbO/5). ** Milkmannetje **, не могли бы вы предоставить исчерпывающий тест? Какие строки действительны, а какие нет? –