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

时间:2018-02-23 03:33:11

标签: java regex

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

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

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

2 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用负向前瞻来使用这种淬火贪婪模式:

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

RegEx Demo

记下(?:(?!/a/b/).)*与下一个位置没有/a/b/的任何字符匹配0或更多的ax = df.groupby(['industry','Name'])['Name'].count().unstack(0).plot.bar(title="Number for each Owner Name", figsize=(14,8)) _ = ax.set_xlabel('Owner') _ = ax.set_ylabel('Frequency') 。对于每个角色都会断言这种负向前瞻。

答案 1 :(得分:2)

您可以匹配非空格(或您想要否定的任何分隔符)而不是.,以便它不会泄漏到下一个:

/a/b/(\S*)\.html