javascript - 如何使 Javascript 正则表达式仅在两个字符彼此相邻时匹配?

标签 javascript regex

我有一个正则表达式将段落分成句子:

var sentences = /[^\.!\?]+[\.!\?]+/g;

我希望它仅在标点符号 ([\.!\?]+) 后面有空格 \s 时才匹配。我尝试了 /[^\.!\?]+[\.!\?]+\s/g,但这不起作用。

我想要这个的原因是因为目前如果中间有一个标点符号的单词(例如 about.me),它会像 . 一样将其拆分在那里。当它没有时代表句子的结束。有什么想法吗?

例如:

如果我有这一段:

如果要解决的问题不像 about.me 的流量和导航数据那么明显或立即有用:天气。有几个应用程序试图利用人群来提供准确的信息?

我希望它只分成

['如果要解决的问题不像 about.me 的流量和导航数据那么明显或立即有用:天气。', '一些应用程序正在尝试利用人群来提供准确的信息?']

而目前它分为

['如果要解决的问题不像交通那样明显或立即有用。', '我和导航数据:天气。', '一些应用程序正在尝试利用人群来提供准确的信息?']

最佳答案

这是你想要的吗?

var str = "If the problem being solved isn't as apparent or immediately useful as traffic about.me and navigation data: weather. A few apps are trying to harness the crowd to provide accurate?";

str.match(/.+?(\.|\?)(\s|$)/g);

关于javascript - 如何使 Javascript 正则表达式仅在两个字符彼此相邻时匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199854/

相关文章:

python - 相当于 Ruby 中 Python 的 findall() 方法?

javascript - 如何防止嵌套的 Bootstrap 折叠元素在父元素上触发 .show() ?

javascript - 暂停某些 HTML5 <audio> 时听到爆音

javascript - Underscore.js 添加 if/else 到每个函数

javascript - graphQL 解析器不等待 Web API 完成

javascript - 正则表达式:字符串以 3 到 4 个连续的 "a"结尾

javascript - CSS图像按钮不可点击

python - 使用 re.sub 替换不同大小的小数时对齐小数位

javascript - 用 javascript 封装大的 Markdown 段落

python 运算符 'in' 与正则表达式