当前位置:  开发笔记 > 编程语言 > 正文

Java正则表达式返回完整字符串而不是捕获

如何解决《Java正则表达式返回完整字符串而不是捕获》经验,为你挑选了1个好方法。

Java代码:

String imagesArrayResponse = xmlNode.getChildText("files");
Matcher m = Pattern.compile("path\":\"([^\"]*)").matcher(imagesArrayResponse);

while (m.find()) {
    String path = m.group(0);
}

串:

[{"path":"upload\/files\/56727570aaa08922_0.png","dir":"files","name":"56727570aaa08922_0","original_name":"56727570aaa08922_0.png"}{"path":"upload\/files\/56727570aaa08922_0.png","dir":"files","name":"56727570aaa08922_0","original_name":"56727570aaa08922_0.png"}{"path":"upload\/files\/56727570aaa08922_0.png","dir":"files","name":"56727570aaa08922_0","original_name":"56727570aaa08922_0.png"}{"path":"upload\/files\/56727570aaa08922_0.png","dir":"files","name":"56727570aaa08922_0","original_name":"56727570aaa08922_0.png"}]

m.group退货

path":"upload\/files\/56727570aaa08922_0.png"

而不是路径的捕获​​值。我哪里错了?



1> Prim..:

请参阅group( int index )方法文档

用0调用时,它将返回整个字符串。第一组是第一个。

为避免此类陷阱,应使用带语法的命名组: "path\":\"(?[^\"]*)"

javadoc:

捕获组从左到右从一个索引开始。组零表示整个模式,因此表达式m.group(0)等效于m.group()。

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有