Javascript 提取匹配词所在的句子

Javascript 提取匹配词所在的句子,javascript,regex,Javascript,Regex,我试着用下面提到的代码来挑选整句话(我们的引述如下:在30年来最大的黄金暴跌让投资者心碎之后,他们\u2019正在遵循泰勒·斯威夫特的建议,永远不会重归于好)。我可以提取黄金出现后的字符串,但不能提取之前的字符 这是一个例子,我只想创建一个代码来从文本中选择句子,无论是在文本的开始还是在文本的结尾或在文本的中间。 我想如果可能的话,我是否能够在(.)到(.)之间选择文本 var str = "This rally in gold will fail! The consensus on this

我试着用下面提到的代码来挑选整句话(我们的引述如下:在30年来最大的黄金暴跌让投资者心碎之后,他们\u2019正在遵循泰勒·斯威夫特的建议,永远不会重归于好)。我可以提取黄金出现后的字符串,但不能提取之前的字符

这是一个例子,我只想创建一个代码来从文本中选择句子,无论是在文本的开始还是在文本的结尾或在文本

的中间。 我想如果可能的话,我是否能够在(.)到(.)之间选择文本

var str = "This rally in gold will fail!  The consensus on this    market view is as great as we saw at the beginning of the year on strong economic growth and rising interest rates!  Bloomberg captured the sentiment well in a June 24th article.  We quote as follows:   After the biggest gold slump in three decades left investors heartbroken, they\u2019re following Taylor Swift\u2019s advice and never, ever getting back together.; 
var n = str.indexOf("Swift");
var res = str.substr(n, str.indexOf(".")-n);    

通常,我会使用正则表达式执行此操作,如下所示:

(?<=.\s+|^)[^.]*Swift[^.]*\.
这都是关于模式的,真的。您需要一个包含»Swift«的句子。这样一个句子由要查找的单词前的一部分(可能是空的)和要查找的单词后的一部分(可能是空的)组成。它也以
结尾。如果你从这个角度来解决这个问题,转换成正则表达式实际上相当简单,如上图所示

事实上,我们甚至可以做得更好,因为我们知道正则表达式如何处理匹配项:

[^.]*Swift[^.]*\.
也应该足够了。零件
[^.]*
永远不会与
匹配,因此它不能在前一句中开始。因此,匹配可以开始的第一个可能位置是包含要搜索的单词的句子的开头。顺便说一句,这个正则表达式也应该在JavaScript中工作

让事情复杂化的是,句子也不只是以句号结尾,有时还加上感叹号或问号,这是正确的注释(我在阅读问题时想到了这一点,但不是在写正则表达式时想到的——短期记忆很有趣)。所以正则表达式应该是这样的:

[^.!?]*Swift[^.!?]*\.
var str=“这次黄金涨势将失败!关于这一市场观点的共识与我们年初在强劲的经济增长和不断上升的利率上看到的一样伟大!彭博社在6月24日的一篇文章中很好地捕捉到了这种情绪。我们引述如下:30年来最大的黄金暴跌让投资者心碎后,他们听从泰勒·斯威夫特的建议,永远不会重归于好。”;
变量a=str.split('.');
对于(变量i=0;i-1)
console.log(a[i]);
}

您想要两个字符在两个句号之间查找文本?预期输出是什么?我从问题中删除了未使用的代码。这可能是一个打字错误,但请注意,
str
未关闭:
var str=“This together;”-否
。我没有修复它。请根据输入文本为我们提供输入文本,以及您希望函数返回的内容。是的,Tushar和nu11p01n73R。我希望在两个完全停止之间提取文本。不是”?“和”!“还有句子结尾?你完全正确。对不起。在开始回答和破解正则表达式之间,我实际上已经忘记了它们。”。
[^.!?]*Swift[^.!?]*\.
 var str = "This rally in gold will fail!  The consensus on this    market      view            is as great as we saw at the beginning of the year on strong economic growth and rising interest rates!  Bloomberg captured the sentiment well in a June 24th article.  We quote as follows:   After the biggest gold slump in three decades left investors heartbroken, they\u2019re following Taylor Swift\u2019s advice and never, ever getting back together."; 

 var a=str.split('.');
 for(var i=0;i<a.length;i++){
 if(a[i].indexOf("Swift")>-1)
    console.log(a[i]);
}