我有看起来像这样的内容:
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
我希望我的正则表达式匹配第 2 行而不是第 1 行或第 3 行。
我认为我需要的是积极的回顾,但我不确定。即使我是正确的,我也不知道如何正确应用它。
我尝试了以下方法:
^(?<=([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]{3} [A-Z] [A-Z]{2} ..K..b [0-9]{2} [A-Z]{3} [A-Z]{2} [A-Z] [0-9]{2}))$
请指导我找到正确的解决方案。谢谢!
这个正则表达式,重新利用了你的大部分正则表达式:
在线演示
正则表达式匹配如下:
^
[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]
.*
由于第 2 行以日期结尾,因此您可以尝试以下正则表达式:
它测试一行以四位数字结尾,后跟一个破折号、两个数字、一个破折号和两个数字。