gpt4 book ai didi

javascript - 正则表达式使用 match() 将长文本分割成单独的句子

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

这是一个文本区域,用户可以在其中写入一些文本。我在里面写了一个例子。

<textarea id="text">First sentence. Second sentence? Third sentence!
Fourth sentence.

Fifth sentence
</textarea>

正则表达式中已考虑的要求

  • 数组项中包含分隔符
  • 最后一句不一定需要分隔符(可以以任何字符结尾)
  • 如果一个句子有多个分隔符,则将其包含在数组项中。示例:第二句?!? 应该是 [...,"第二句?!?",...]

缺少要求(我需要这方面的帮助)<<

每个新行应由一个空数组项表示。如果应用正则表达式,则响应应该是:

["First sentence.", "Second sentence?", "Third sentence!", "", "Fourth sentence.", "", "", "Fifth sentence"]

相反,我收到的是:

["First sentence.", "Second sentence?", "Third sentence!", "Fourth sentence.", "Fifth sentence"]

这是正则表达式和匹配调用:

var tregex = /[^\r\n.!?]+(:?(:?\r\n|[\r\n]|[.!?])+|$)/gi;
var sentences = $('#text').val().match(tregex).map($.trim);

有什么想法吗?谢谢!

最佳答案

我简化了很多,要么匹配行尾(换行),要么匹配一个句子后跟标点符号:

var tregex = /\n|([^\r\n.!?]+([.!?]+|$))/gim;

我也相信多行的 m 标志很重要

关于javascript - 正则表达式使用 match() 将长文本分割成单独的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166195/

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