如何使用正则表达式在最后一次模式发生后捕获字符?

时间:2017-08-10 17:25:46

标签: php regex regex-negation

我目前正在使用以下方式匹配模式的最后一次出现:

cygpath

模式是" __"

但是,我需要匹配模式之后的字符而不是模式本身。

例如,给定字符串__(?:.(?!__+))+$

我需要捕捉"选项"但上面的正则表达式捕获" __选项"。

2 个答案:

答案 0 :(得分:5)

如果没有预测,您可以在PHP中使用此正则表达式:

.*__\K.+

RegEx Demo

RegEx分手:

.*   # match zero or more characters (greedy match)
__   # match "__"
\K   # reset matched info
.+   # match 1 or more characters (greedy)

答案 1 :(得分:0)

您可以尝试:

.*__(.+)

。*匹配任何文本,如果有的话 __匹配__(不贪心)
(。+)匹配并捕获()任何文本

https://regex101.com/r/bus5vi/1