Regex 匹配正则表达式中字符串最后一个实例后的所有字符

Regex 匹配正则表达式中字符串最后一个实例后的所有字符,regex,Regex,我希望捕获正则表达式中最后一个字符串实例之后的所有字符 字符串(我们在最后一个实例之后搜索的字符串)如下所示,无引号:“-”,或\b\s\-\s\b:边界(空格字符,前面加-,前面加空格字符) 测试字符串如下所示: 一件事-两件事-三件事-四件事 所需匹配: 四件事 此正则表达式仅匹配字符串第一个实例之后的所有内容: (?*(?尝试使用正向查找,然后在-分隔符上取反,并获取最后一个结果 (?我想你不需要使用环视仪就可以找到你的对手 您可以匹配任何字符,除了字符串开头的换行符和匹配模式之外。这将匹

我希望捕获正则表达式中最后一个字符串实例之后的所有字符

字符串(我们在最后一个实例之后搜索的字符串)如下所示,无引号:
“-”
,或
\b\s\-\s\b
:边界(空格字符,前面加
-
,前面加空格字符)

测试字符串如下所示:

一件事-两件事-三件事-四件事

所需匹配:

四件事

此正则表达式仅匹配字符串第一个实例之后的所有内容:


(?
*(?尝试使用正向查找,然后在
-
分隔符上取反,并获取最后一个结果


(?我想你不需要使用环视仪就可以找到你的对手

您可以匹配任何字符,除了字符串开头的换行符和匹配模式之外。这将匹配最后一个实例

然后在一个组中捕获匹配0+倍的任何字符(换行符除外),直到字符串结束

^.*\b\s\-\s\b(.*)$
  • ^
    字符串的开头
  • *
    匹配除换行符以外的任何字符
  • \b\s\-\s\b\
    匹配您的模式
  • (.*)
    在组1中捕获匹配0+乘以除换行符以外的任何字符的内容
  • $
    字符串结尾

未列出任何工具或编程语言,但如果支持
\K
以忘记匹配的内容,则还可以使用:

^.*\b\s\-\s\b\K.*$

这匹配字符串的结尾,所有不是
-
的内容都在
-
之后

-\s*([^-]+)$

这是我能想到的最简单的正则表达式。

我对\b不太了解,在php中似乎也不太好…如果没有它,我就可以使用
*(?@AntonyGibbs),它是单词边界上的零长度匹配。并非所有地方都支持它,但由于OP给出了一个示例,我认为它在他使用的环境中是受支持的。