如何在Java中使用正则表达式获取第二个匹配器?
发布时间:2020-12-14 16:48:15 所属栏目:Java 来源:网络整理
导读:参见英文答案 Match at every second occurrence6个 我想在这个字符串中的 – 和_之间以正则表达式模式提取第二个匹配器: VA-123456-124_VRG.tif 我试过这个: Pattern mpattern = Pattern.compile("-.*?_"); 但是我在Java中获得了上述正则表达式的123456-1
参见英文答案 >
Match at every second occurrence6个
我想在这个字符串中的 – 和_之间以正则表达式模式提取第二个匹配器: VA-123456-124_VRG.tif 我试过这个: Pattern mpattern = Pattern.compile("-.*?_"); 但是我在Java中获得了上述正则表达式的123456-124. 我只需要124. 我怎样才能做到这一点? 解决方法
我会在这里使用正式的模式匹配器,尽可能具体.我会用这种模式:
^[^-]+-[^-]+-([^_]+).* 然后检查第一个捕获组以查找可能的匹配项.这是一个有效的代码片段: String input = "A-123456-124_VRG.tif"; String pattern = "^[^-]+-[^-]+-([^_]+).*"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(input); if (m.find()) { System.out.println("Found value: " + m.group(1) ); } 124 Demo顺便说一句,有一个班轮也可以在这里工作: System.out.println(input.split("[_-]")[2]); 但是,这里需要注意的是,它不是非常具体,可能会因您的其他数据而失败. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |