Eu tenho um conteúdo que se parece com isso:
001 B OR 06K24b 01 TCP SC C 02
001 B CC 12K48b 99 BCP SC A 02 1982-11-09
001 B OR 06K24b 01 TCP SC C 02
Eu quero que minha expressão regex corresponda à linha 2, mas não à linha 1 ou 3.
Acho que preciso de um olhar positivo para trás, mas não tenho certeza. Mesmo se eu estiver correto, não consigo descobrir como aplicá-lo corretamente.
Eu tentei o seguinte:
^(?<=([0-9]{3} [A-Z] [A-Z]{2} ..K..b [0-9]{2} [A-Z]{3} [A-Z]{2} [A-Z] [0-9]{2})).*
e Lookahead Positivo:
^(?!([0-9]{3} [A-Z] [A-Z]{2} ..K..b [0-9]{2} [A-Z]{3} [A-Z]{2} [A-Z] [0-9]{2}))$
Por favor, me guie para a solução correta. Obrigado!
Este regex reutilizou o máximo do seu regex:
Demonstração on-line
A expressão regular corresponde da seguinte forma:
^
[0-9]{3}
[A-Z]
[A-Z]{2}
.
.
K
.
.
b
[0-9]{2}
[A-Z]{3}
[A-Z]{2}
[A-Z]
[0-9]{2}
[0-9]
.*
Como a linha 2 termina com o que parece ser uma data, você pode tentar o seguinte regex:
Ele testa se uma linha termina com quatro dígitos seguidos por um traço, dois dígitos, um traço e dois dígitos.