我有一个字符串,它是特定文件的 URL 位置。该字符串看起来像:
abc://axs/abc/def/gh/ij/kl/mn/src/main/resources/xx.xml
我想获取n次出现字符/
后的内容。例如,从上面的字符串中,我想要:
mn/src/main/resources
内容出现在 8 次出现 /
之后,最后一次出现 /
之前。我浏览了一些正则表达式中的示例,例如 X{n}
,其中 n 次出现的 X
将通过使用 group 进行检索和给出()
,但在我的例子中,字符 /
是随机的,需要获取内容。
最佳答案
正则表达式 ".+://(?:[^/]+/){6}(.*)/[^/]*"
将返回mn/src/main/resources
作为 abc://axs/abc/def/gh/ij/kl/mn/src/main/resources/xx.xml
的组(1)
可以理解为
- 至少一个字符,后跟一个冒号,后跟两个斜杠
- 许多非斜杠后跟一个斜杠(作为非捕获组重复 6 次)
- 贪婪的捕获组
- 斜线后跟许多非斜线
关于java - 需要一个正则表达式来提取字符串的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886090/