删除字符串的特定部分

时间:2015-10-08 14:01:48

标签: java regex

我正在解析文件的每一行(XML文件),我需要找到path="this_is_my_path"。在此之后,我需要在\"中提取什么。我需要this_is_my_path

这就是我正在做的事情:

String pattern = ".*path=\"(.*?)\"";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(the_text_file);

while (m.find()) {
        System.out.println(m.group().trim());
}

运行之后,我得到了这个:

path="path_to_file"
test="ui_test" path="path_to_other_file"
.....

我应该打印这个:

path_to_file
path_to_other_file
path_to_other_fileX
path_to_other_fileW

2 个答案:

答案 0 :(得分:3)

如果您需要使用正则表达式,请尝试使用:

(?<=path=\")(.*?)(?=\")

DEMO

或者你可以使用你的正则表达式,但在begenning时没有.*,因为它也匹配同一行中path=之前的任何内容。然后按组1获得价值。

答案 1 :(得分:2)

为什么重新发明轮子?除非这是一个挑战或什么?

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/