RegEx在找到模式的最终实例后捕获文本

时间:2018-04-27 15:40:33

标签: regex

我想使用正则表达式来获取一段文字,我知道这段文字将始终跟随一系列四位数字,后跟一个空格,然后是破折号,然后是另一个空格。我想将此模式的最终实例之后出现的文本捕获到该行的末尾。

例如

2222-6453-ABC-1234 - The text I want to capture
ABCD - 7654 - The text I want to capture
7GF2-0000 - ABC - 4444 - The text I want to capture
87628734878764-0631 - The text I want to capture
ab2d6m2k6 -9867 - The text I want to capture

在上面的示例中,我唯一可以依赖的一致模式是,将有一组四个数字,后跟一个空格,一个破折号,然后是我要捕获的文本前面的另一个空格。如果有四个数字空间虚线空间模式的多个实例,我想要捕获的文本将在模式的最终实例之后。

正则表达式模式是

(\d\d\d\d - )

但是如何指定我想在模式的最终实例后开始捕获文本?

1 个答案:

答案 0 :(得分:0)

你想要这样的东西吗?

(?m)(?<=\d{4}\s-\s)(?:(?!\d{4}\s-\s)[^\n])*$

Demo