使用正则表达式查找带有可选结尾的模式

时间:2015-09-02 08:37:21

标签: regex match string-matching

我正在寻找单个正则表达式来提取一个文本块,可以用可选结尾包围。这里的挑战只是使用单个正则表达式。

输入如下:

Anchor:  This is the text I want to extract          A/C  : 2015-5-20
Anchor:  This is the text I want to extract        

我目前正在使用以下正则表达式

Anchor:(?<extact>.*)(A\/C)

结果如下:

enter image description here

如果我将A / C块设为可选,Anchor:(?<extact>.*)(A\/C)?使用?匹配会变长:

看起来如下: enter image description here

任何想法如何用一个正则表达式优雅地解决这个问题。另一个限制是我想在正则表达式中有一个命名块,(这里是extact

您可以在regex101上找到示例代码:https://regex101.com/r/wH5iQ4/1

1 个答案:

答案 0 :(得分:1)

Anchor:(?<extact>.*?)\s*(?=A\/C|$)

您可以在此处使用lookahead。参见演示。

https://regex101.com/r/wH5iQ4/3