如何获取 < > 和 ""之间的信息?
我尝试用|链接正则表达式,但没有找到任何东西。
String processed="";
Pattern pattern = Pattern.compile("\"([^\"]*)\"|<(.*?)>");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
processed += matcher.group(1);
processed += " ";
}
你能帮我吗?
最佳答案
您没有找到尖括号中的内容的原因是,您并没有真正打印它。您假设 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 += " ";
}
关于java - 如何按照文本中出现的顺序获取两个正则表达式之间的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21062859/