gpt4 book ai didi

java - 删除两个特定标签之间的所有字符(java regex)

转载 作者:行者123 更新时间:2023-12-02 09:40:20 26 4
gpt4 key购买 nike

我想删除 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));

最佳答案

尝试使用以下正则表达式删除 <DATE>标签及其内容,

content = content.replaceAll("(?s)<DATE>.*?</DATE>", "");

说明:

  • (?s) DOTALL 修改器启用 DOTALL 模式。它使点甚至可以匹配换行符。
  • <DATE>匹配起始 <DATE>标签。
  • .*?匹配下一个 </DATE> 之前的任何字符字符串。 ?之后*告诉正则表达式引擎进行最短匹配。
  • 最后将匹配的字符替换为空字符串。

关于java - 删除两个特定标签之间的所有字符(java regex),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24784707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com