【发布时间】:2017-12-22 22:01:18
【问题描述】:
给定以下 PCRE 正则表达式:
(?(DEFINE)(?'pat'a|ab))^(?P>pat)b$
我预计它会匹配字符串ab 和abb。然而,它只匹配ab(而不是abb,参见https://regex101.com/r/F70wge/1)。回溯器似乎没有进入命名的子模式。
当内联模式如下:
^(?:a|ab)b$
ab 和 abb 两个字符串都按预期匹配。
是否可以更改上面的正则表达式(使用命名模式)以使两个字符串匹配而不内联模式?
【问题讨论】: