gpt4 book ai didi

Java 正则表达式将 HTML 列表转换为文本

转载 作者:行者123 更新时间:2023-11-28 00:24:41 26 4
gpt4 key购买 nike

我有以下形式的数据:

<ol>
<li>example1</li>
<li>example2</li>
<li>example3</li>
</ol>

需要变成

# example1
# example2
# example3

英镑符号必须与 ol html 标记相关联。我正在使用 java 正则表达式,这是我目前所拥有的:

info = info.replaceAll("(?s).<ol>\n(<li>(.*?)</li>\n)*</ol>","# $2");

info 是一个包含数据的字符串对象。 li 标签之间也可能有换行符。当我运行它时,它只打印最后一项。即结果是

 # example3

example2 和 example1 缺失

对我做错了什么有什么想法吗?

最佳答案

你的正则表达式有几个问题:

  • 它在一个捕获组中包含一个捕获组
  • 总的来说,它只会匹配一次(它包括一开始——只有其中一个。

我推荐的解决方案是:不要束缚自己。使用 Matcher.find() 编写一个循环,逐个提取匹配项并将它们添加到字符串缓冲区。它会是这样的:

    Pattern p = Pattern.compile("<ol>(.*?)</ol>");
Matcher m = p.matcher("...");
StringBuffer sb = new StringBuffer();
while (m.find()) {
sb.append("#").append(m.group(1)).append("\n");
}
String result = sb.toString();

关于Java 正则表达式将 HTML 列表转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686573/

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