首先,感谢您的帮助,我坚持了这个问题一个星期。我谷歌搜索它,但没有Java响应,只有Python和其他我不知道的语言。
我正在使用java开发一个搜索一对字符串的应用程序,并在这两个单词的中间获取文本。例子:
<A name=1></a>Some text with break lines<A name=300></a>
主要问题是,我需要在这两个游行之间得到文本,直到。 Grabe这个文本并将其添加到StringBuffer。
我这样做了:
Pattern regex = Pattern.compile("<A name=1><\\/a>((.|\\s)+?)<A name=300><\\/a>");
Matcher matcher = regex.matcher(htmlFileReading);
if (matcher.find()) {
System.out.println("Finded");
System.out.println(matcher.groupCount());
}
它可以工作,但是当我尝试大于但不是那么大的东西时,它会返回堆栈溢出错误。
如何获得这两个标记之间的文字?非常感谢,抱歉我的英语不好。
答案 0 :(得分:1)
不确定是对的,但尝试这样的事情来进行“轻微”递归:
// .* before and after if needed
Pattern regex = Pattern.compile(".*<A name=1><\\/a>(.*?)<A name=300><\\/a>.*");
System.output.println(regex.matcher(myStringToSearchInside).replaceAll("$1"));
为newLine编辑
答案 1 :(得分:0)
如果您的目标是从xml中提取文本,建议使用XSLT