【发布时间】:2017-08-10 17:25:46
【问题描述】:
我目前正在使用此匹配最后一次出现的模式:
__(?:.(?!__+))+$
模式是“__”
但是,我需要匹配模式之后的字符,而不是模式本身。
例如,给定字符串my__field__name__options
我需要捕获“选项”,但上面的正则表达式捕获了“__options”。
【问题讨论】:
标签: php regex regex-negation
我目前正在使用此匹配最后一次出现的模式:
__(?:.(?!__+))+$
模式是“__”
但是,我需要匹配模式之后的字符,而不是模式本身。
例如,给定字符串my__field__name__options
我需要捕获“选项”,但上面的正则表达式捕获了“__options”。
【问题讨论】:
标签: php regex regex-negation
如果没有前瞻,你可以在 PHP 中使用这个正则表达式:
.*__\K.+
RegEx 拆分:
.* # match zero or more characters (greedy match)
__ # match "__"
\K # reset matched info
.+ # match 1 or more characters (greedy)
【讨论】:
__([^_]+)$
.*__\K.+ 需要更少的 # 步来返回结果。
【讨论】: