当前位置: 首页 > 知识库问答 >
问题:

Javascript RegExp,用于将文本拆分成句子并保留分隔符

尤飞尘
2023-03-14

我试图使用javascript的拆分来从字符串中提取句子,但保留分隔符,例如!?。

到目前为止,我已经

sentences = text.split(/[\\.!?]/);

它可以工作,但不包括每句话的结尾标点(。!?).

有人知道怎么做吗?

共有3个答案

柯瀚海
2023-03-14

试试这个:-

sentences = text.split(/[\\.!\?]/);

<代码>是正则表达式中的一个特殊字符,因此需要转义。

抱歉,我没看到你的问题-如果你想保留分隔符,那么你需要使用< code >匹配而不是< code >分割看到这个问题

长孙星汉
2023-03-14

以下是对拉里的回答的一个小补充,它也将与偏执的句子相匹配:

text.match(/\(?[^\.\?\!]+[\.!\?]\)?/g);

应用于:

text = "If he's restin', I'll wake him up! (Shouts at the cage.) 
'Ello, Mister Polly Parrot! (Owner hits the cage.) There, he moved!!!"

赐:

["If he's restin', I'll wake him up!", " (Shouts at the cage.)", 
" 'Ello, Mister Polly Parrot!", " (Owner hits the cage.)", " There, he moved!!!"]
翟俊哲
2023-03-14

您需要使用匹配而不是拆分。

试试这个。

var str = "I like turtles. Do you? Awesome! hahaha. lol!!! What's going on????";
var result = str.match( /[^\.!\?]+[\.!\?]+/g );

var expect = ["I like turtles.", " Do you?", " Awesome!", " hahaha.", " lol!!!", " What's going on????"];
console.log( result.join(" ") === expect.join(" ") )
console.log( result.length === 6);
 类似资料:
  • 我想把一个有空格或任何特殊字符的句子分成一个单词数组,空格或特殊字符也是数组的一个元素。 句子像: 应拆分为字符串数组: 请建议使用任何正则表达式或逻辑来使用java进行拆分。 我的问题漏了一件事。我还需要拆分数字字符。。但是使用split(“\b”)并不能拆分具有以下内容的字符串: abc12def 成

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到

  • 使用JavaScript,我试图使用正则表达式将段落拆分为句子。我的正则表达式不考虑括号内的句子,我希望保留分隔符。 我在这里放了一个代码示例 jsFiddle.net

  • 我想用句子截断文本。 示例文本:'Lorem ipsum dolor坐在amet,奉献adipiscing elit!UT车辆laoreet urna, commodo,在马萨诸塞州。赛德volutpat nunc简历urna拍卖,在tempus enim rhoncus。马蒂斯康莫多的莫尔比交流电击器?Morbi在ornare Arcu,sagittis scelerisque risus。Ae

  • 我有一个字符串: 我想用分隔符< code >分割这个字符串 为此,我使用以下方法: 我得到了我需要的东西,除了我失去了分隔符。下面是示例:http://jsfiddle.net/JwrZ6/1/ 如何保留分隔符?

  • 我想到了一个变通办法,用'),‘替换'),然后用','拆分,这将解决我的问题..但我想用一种干净的方式.. 如有任何帮助,不胜感激。