我有以下代码:
Matcher matcher = Pattern.compile("<tag 1>(.*?)</tag 1>").matcher(buffer);
int nr = 0;
while (matcher.find()) {
System.out.println("Match no. " + ++nr + ": '" + matcher.group() + "'");
}
缓冲区在哪里:
<tag 1>
My Value
</tag 1>
如何为我的正则表达式启用多行匹配,以便我可以匹配此缓冲区?谢谢!
答案 0 :(得分:2)
您需要使用DOTALL标志才能使DOT与换行符匹配:
Matcher matcher = Pattern.compile("(?s)<tag 1>(.*?)</tag 1>").matcher(buffer);
或者其他:
Matcher matcher = Pattern.compile("<tag 1>(.*?)</tag 1>", Pattern.DOTALL)
但我要提醒一下,使用正则表达式解析HTML / XML并不是最好的主意。