当两个字符相邻时,如何使Javascript正则表达式仅匹配?

当两个字符相邻时,如何使Javascript正则表达式仅匹配?,javascript,regex,Javascript,Regex,我有一个正则表达式可以把一段话分成几个句子: var sentences = /[^\.!\?]+[\.!\?]+/g; 我只希望它在标点([\.!\?]+)后面有空格\s时匹配。我尝试了/[^\.!\?]+[\.!\?]+\s/g,但没有成功 我之所以要这个,是因为如果在中间有一个标点符号的单词(比如大约.Me/Cuth>),它会像那样分裂它。< /代码>表示句子的结尾。有什么想法吗 例如: 如果我有这段话: 如果正在解决的问题不如traffic about.me和导航数据:weather那

我有一个正则表达式可以把一段话分成几个句子:

var sentences = /[^\.!\?]+[\.!\?]+/g;
我只希望它在标点(
[\.!\?]+
)后面有空格
\s
时匹配。我尝试了
/[^\.!\?]+[\.!\?]+\s/g
,但没有成功

我之所以要这个,是因为如果在中间有一个标点符号的单词(比如<代码>大约.Me/Cuth>),它会像<代码>那样分裂它。< /代码>表示句子的结尾。有什么想法吗

例如:

如果我有这段话:

如果正在解决的问题不如traffic about.me和导航数据:weather那么明显或立即有用。一些应用程序正试图利用人群提供准确的信息?

我只想把它分成两部分

[“如果正在解决的问题不如.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);
这是你想要的吗

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);

“不起作用”是什么意思?发生了什么?你有一些例句吗?@ExplosionPills刚刚添加了一个例子。它没有正确地拆分句子-它在
about.me
中的点处拆分了句子?好吧,那就删掉吧(尽管它是在理解
x(?=y)的基础上写成的)
只会匹配
x
如果后面跟
y
。不过我可能误解了。@DavidThomas啊,我想Graham做了和你一样的事。我不知道你想用。split。我用的是。match和那个regex不起作用,但用的是。split。好吧,该死的…;)不用担心,我已经达到了我的代表上限(而且,正如最初提到的,我无法测试),所以没有丢分。=)“不起作用”是什么意思?发生了什么?你有一些例句吗?@ExplosionPills刚刚添加了一个例子。它没有正确地拆分句子-它在
about.me
中的点处拆分了句子?好吧,那就删掉吧(尽管它是在理解
x(?=y)的基础上写成的)
只会匹配
x
如果后面跟
y
。不过我可能误解了。@DavidThomas啊,我想Graham做了和你一样的事。我不知道你想用。split。我用的是。match和那个regex不起作用,但用的是。split。好吧,该死的…;)不用担心,我已经达到了我的代表上限(而且,正如最初提到的,我无法测试),所以没有丢分。=)