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

标签 java regex

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

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

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

最佳答案

对于这种情况,您可以使用这种温和的贪婪模式,并使用负前瞻:

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

RegEx Demo

记下 (?:(?!/a/b/).)* ,它匹配 0 个或多个不包含 /a/b/< 的字符 在下一个位置。对于每个字符都会断言这种否定的前瞻。

关于java - 正则表达式贪婪匹配选择整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48940706/

相关文章:

java - Spring JMS订阅者无法接收消息?

Javascript 字符串替换 - 非字母数字字符的正则表达式,如反斜杠、大于等

java - 在Java中如何通过递归计算出某个字母在字符串中出现了多少个?

java - 运行STS工具时无法加载JNI共享库

regex - Checkstyle:尾随空格正则表达式问题

regex - Google Analytics(分析)Core Reporting API中的正则表达式

regex - 带非操作的 PCRE 正则表达式

python - re.sub 带有变量,仅整个字符串本身

java - 如何在 python 或 java 中将 geotiff 转换为 jpg?

java - 如何在 Apache Derby 中选择聚合的学生/类(class)数据?