gpt4 book ai didi

java - 用分割句子

转载 作者:行者123 更新时间:2023-12-01 10:03:03 25 4
gpt4 key购买 nike

我有以下句子:

String str = " And God said, <sup>c</sup>&#8220;Let there be light,&#8221; and there was light.";

如何检索句子中的所有单词,期待以下结果?

And
God
said
Let
there
be
light
and
there
was
light

最佳答案

首先,删除任何前导或尾随空格:

.trim()

然后删除 HTML 实体 ( &...; ):

.replaceAll("&.*?;", "")

&;是正则表达式中的文字字符,并且 .*?是“任意字符,任意次数”的非贪婪版本。

接下来删除标签及其内容:

.replaceAll("<(.*?)>.*?</\\1>", "")

<>再次按字面意思理解,.*?如上所述,(...)定义了一个捕获组,并且 \\1引用该组。

最后,分割任意非字母序列:

.split("[^a-zA-Z]+")

[a-zA-Z]表示 a 中的所有字符至zAZ , ^反转匹配,并且 +意思是“一次或多次”。

所以所有的东西加在一起就是:

String words = str.trim().replaceAll("&.*?;", "").replaceAll("<(.*?)>.*?</\\1>", "").split("[^a-zA-Z]+");

请注意,这不会处理像 <img src="a.png" /> 这样的自关闭标签。 .
另请注意,如果您需要完整的 HTML 解析,您应该考虑让真正的引擎解析它,如 parsing HTML with Regex is a bad idea .

关于java - 用<sup></sup>分割句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665402/

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