删除两个特定标记(java正则表达式)之间的所有字符

删除两个特定标记(java正则表达式)之间的所有字符,java,regex,string,Java,Regex,String,我想删除html内容和标签 <DATE> html content </DATE> html内容 这些是我尝试过的代码的不同版本,但都不起作用: content = content.replaceAll("<DATE>(?s:)</DATE>", ""); content = content.replaceAll("<DATE>(?:.|\n)</DATE>", ""); content = content.replac

我想删除html内容和标签

<DATE> html content </DATE>
html内容
这些是我尝试过的代码的不同版本,但都不起作用:

content = content.replaceAll("<DATE>(?s:)</DATE>", "");
content = content.replaceAll("<DATE>(?:.|\n)</DATE>", "");
content = content.replaceAll("<DATE>" + Pattern.DOTALL + "</DATE>", "");
content = content.replaceAll("<DATE>(.*?)</DATE>", "");
content=content.replaceAll(“(?s:)”,”);
content=content.replaceAll(“(?:.|\n)”,”;
content=content.replaceAll(“+Pattern.DOTALL+”,”);
content=content.replaceAll(“(.*?”,”);
有什么建议吗

完整代码:

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));
Path-corpusPath=Path.get(Path+file);
字符串内容=新字符串(Files.readAllBytes(corpusPath),字符集);
content=content.replaceAll(“,”);
content=content.replaceAll(“,”);
content=content.replaceAll(“(.*?”,”);
Path destPath=Path.get(Path+“Parsed\\”+文件);
write(destPath,content.getBytes(charset));

尝试使用下面的正则表达式删除
标记及其内容

content = content.replaceAll("(?s)<DATE>.*?</DATE>", "");
content=content.replaceAll(“(?s)。*?”,”);
说明:

  • (?s)
    DOTALL修改器启用DOTALL模式。它使点匹配甚至换行符也
  • 与起始
    标记匹配
  • *?
    将任何字符匹配到下一个
    字符串<代码>?after
    *
    告诉正则表达式引擎进行最短匹配
  • 最后用空字符串替换匹配的字符

您能分享完整的代码吗?最后一个应该工作。<代码>模式。doase< /Cord>不是一个可以放在正则表达式中间的模式。这是一个在匹配时传递的标志,用于更改模式匹配器的行为。它实际上是一个
int
,因此,如果您尝试将其连接到字符串,您将在模式中得到一个不需要的整数(模式将是
“32”
,这肯定是错误的)。无需转义正斜杠。是的,它可以在不转义斜杠的情况下工作。两个版本都有效。非常感谢你。你能解释一下原因吗?您放在前面的是什么?如果需要,请提供更多详细信息:
(?s)
启用DOTALL模式。From:“在dotall模式下,表达式
匹配任何字符,包括行终止符。默认情况下,此表达式不匹配行终止符。”。回答不错。用户只需查看是否有清晰的标签。例如,我的标记带有一个补码,所以我必须在正则表达式上编辑它。