我想删除html内容和标签
<DATE> html content </DATE>
这些是我尝试过的代码的不同版本,但没有一个有效:
content = content.replaceAll("<DATE>(?s:)</DATE>", "");
content = content.replaceAll("<DATE>(?:.|\n)</DATE>", "");
content = content.replaceAll("<DATE>" + Pattern.DOTALL + "</DATE>", "");
content = content.replaceAll("<DATE>(.*?)</DATE>", "");
有什么建议吗?
完整代码:
Path corpusPath = Paths.get(path + file);
String content = new String(Files.readAllBytes(corpusPath), charset);
content = content.replaceAll("<HEADLINE>", "<DOCHDR>");
content = content.replaceAll("</HEADLINE>", "</DOCHDR>");
content = content.replaceAll("<DATE>(.*?)</DATE>", "");
Path destPath = Paths.get(path + "Parsed\\" +file);
Files.write(destPath, content.getBytes(charset));
答案 0 :(得分:10)
尝试使用以下正则表达式删除<DATE>
标记及其内容
content = content.replaceAll("(?s)<DATE>.*?</DATE>", "");
<强>解释强>
(?s)
DOTALL Modifier启用DOTALL模式。它使得点甚至可以匹配换行符。<DATE>
匹配起始<DATE>
代码。.*?
匹配任何字符到下一个</DATE>
字符串。在?
告诉正则表达式引擎进行最短匹配后*
。