正则表达式贪婪匹配选择整行



对于Java应用程序,我有以下字符串:/a/b/first/one.js, /a/b/second/two.js, /a/b/third/three.html

我想选择最后一个路径(/a/b/third/three.html)并有这个正则表达式:/a/b/(.*?).html,但它选择了整行。

如何让正则表达式停止匹配整行并只选择其中的一部分?

对于这种情况,您可以使用这种温和的贪婪模式,使用负面的展望:

/a/b/(?:(?!/a/b/).)*.html

正则表达式演示

记下与下一个位置没有/a/b/的任何字符的 0 或多个匹配的(?:(?!/a/b/).)*。这种消极的展望是针对每个角色的。

您可以匹配非空格(或要否定的任何分隔符)而不是.这样它就不会溢出到下一个:

/a/b/(S*).html

最新更新