如何获取<之间的信息? >和“”之间?
我尝试将正则表达式与|链接,但它没有找到任何内容。
String processed="";
Pattern pattern = Pattern.compile("\"([^\"]*)\"|<(.*?)>");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
processed += matcher.group(1);
processed += " ";
}
你能帮助我吗?
答案 0 :(得分:4)
您没有在尖括号中找到内容的原因是,您并没有真正打印它。您假设matcher.group(1)
会在<>
或""
之间为您提供匹配的群组,但它不是那样的。组根据括号编号。尝试在每次迭代时打印group 1
和group 2
,您就会知道发生了什么。
找出问题之后,你只需删除那些捕获组,并使它们不被捕获,然后使用group(0)
代替它,它将起作用:
String processed="";
Pattern pattern = Pattern.compile("\"(?:[^\"]*)\"|<(?:.*?)>");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
processed += matcher.group(0);
processed += " ";
}