java - 需要一个正则表达式来提取字符串的子字符串

标签 java

我有一个字符串,它是特定文件的 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/

相关文章:

java - 用适当的java代码替换表情符号

java - Camel 测试 - 如何从 FileConsumer/FTPConsumer 测试处理器?

java - Java 的 Wysiwyg html 编辑器

java - 用于多用户聊天程序的ArrayList

java - Mockito - 验证目标类方法内另一个对象的方法调用

java - 从 JSpinner 中删除定界符

java - 当我添加绘画方法时,JFrame 窗口变黑

Java ConcurrentHashMap 原子获取和放置

java - 为Netbeans(JAVA)项目安装安装程序

java - 你可以让一个 Maven 插件引入另一个插件吗?