Javascript正则表达式如何获得字符串中两个单词之间的所有出现
Javascript regex how to get all occurences between two words in a string
我使用以下函数来获取字符串中两个单词之间的字符串:
function findStringBetween(str,first,last){
var r = new RegExp(first+'.*(.*)'+last,'gm');
var a = str.match(r);
return a;
}
但是我不能得到所有可能的发现。
例如,如果一个句子(str)是这样的情况:
"里面有很多单词的句子。句子里面很短。还有一些其他的句子来填补我的这个例子。"
我得到这个:
var found = findStringBetween(str, 'The', 'inside');
>> ["The sentence which has a lot of words inside. The sentence short inside"]
我想要得到的是"the"answers"inside"这两个词之间的所有发现。对于示例,结果将是:
>> ["The sentence which has a lot of words inside",
>> "The sentence short inside"]
这是可能通过正则表达式吗?如果不是,我怎么做才能快速找到答案?
谢谢
是的,有可能。问题是regex字符"*"(和"+")在默认情况下是"贪婪的",这意味着它将使用最长的匹配。您想要尽可能短的匹配,所以通过在后面添加"?"来使其"懒惰",如下所示:
function findStringBetween(str, first, last) {
var r = new RegExp(first + '(.*?)' + last, 'gm');
return str.match(r);
}
相关文章:
- JS中单词之间的空格
- 突出显示jQuery中单词之间的空格
- 两个单词之间的Javascript差异
- 与冒号(不包括冒号)之间的正则表达式单词匹配
- 在某些情况下,“text”方法会删除单词之间的空格
- 使用正则表达式获取多个单词,单词之间留有空格
- 如何删除两个单词之间的字符串
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- 如何删除句点和前一个单词之间的空格
- 删除带有单词javascript的大括号之间的空格
- 在两个单词之间应用正则表达式
- 什么是用于删除大写字母之间的空格的正则表达式,但在单词之间保留空格
- 正则表达式获取 / 和 / 之间的 URL 中的最后一个单词
- jQuery:如何在单词之间修剪换行符和制表符
- 如何在分隔之间选择多个单词
- 谷歌邮件应用程序脚本中的正则表达式困难 - 在两个单词之间选择单词
- 正则表达式删除所有白色景观,除了单词之间的一个
- Javascript 正则表达式用于所有不在特定字符之间的单词
- 提取“=”和“(”之间的单词
- 多次捕捉两个相同单词之间的所有内容