![](/img/trans.png)
[英]How to match string between two words, and repeat this pattern for all two defined words in the string, Regex?
[英]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”和“ inside”之間出現的所有發現。 對於示例結果將是:
>> ["The sentence which has a lot of words inside",
>> "The sentence short inside"]
通過正則表達式可以嗎? 如果不是,我該怎么做才能快速發現?
謝謝
是的,有可能。 問題是正則表達式字符“ *”(和“ +”)默認情況下為“貪心”,這意味着它將以最長的匹配項進行匹配。 您想要最短的匹配,因此通過添加“?”使其“懶惰”。 之后,就像這樣:
function findStringBetween(str, first, last) {
var r = new RegExp(first + '(.*?)' + last, 'gm');
return str.match(r);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.