我試圖匹配完整的單詞「和」,除了它出現在成語之前和之後重複相同的單詞,如「越來越多「或」一次又一次「。我有這個:需要一個javascript正則表達式來匹配單詞前後都沒有不同的單詞
/(\b\w*\b)\s\band\s(?!\1)/gi
它的工作原理,除了它還捕獲「和」之前的單詞。我明白你不能在JS中做後視正則表達式...任何幫助表示讚賞!
例: 應該符合這個和加上這個和而不是越來越多或越來越少。
我試圖匹配完整的單詞「和」,除了它出現在成語之前和之後重複相同的單詞,如「越來越多「或」一次又一次「。我有這個:需要一個javascript正則表達式來匹配單詞前後都沒有不同的單詞
/(\b\w*\b)\s\band\s(?!\1)/gi
它的工作原理,除了它還捕獲「和」之前的單詞。我明白你不能在JS中做後視正則表達式...任何幫助表示讚賞!
例: 應該符合這個和加上這個和而不是越來越多或越來越少。
是否有可能讓您測試相反的結果,測試匹配對的存在並否定結果?
/(\b\w+\b)\s\band\s(\1)/gi
我做了一個快速的幾個測試在https://regex101.com/r/ZqXbtL/1/tests,它給了我,我會期望與否定的結果。
我認爲它更好地獲得匹配項目的索引,並添加單詞的長度和它後面的空間以獲得索引「和」,所以你可以使用substring或類似的東西,我知道它的不是你想要的確切的東西,但也許它有幫助。
下面的代碼片段將得到第二指數 「和」
編輯:得到幫助從this answer
var reg = /(\b\w*\b)\s(?=\band\s(?!\1))/g;
var match,indexes = [];
while(match = reg.exec(document.body.innerHTML)){
indexes.push(match.index + match[0].length);
}
// testing
indexes.forEach(function(element){
document.body.innerHTML += "<br>\"" +
document.body.innerHTML.substr(element,3) + "\" found at " + element;
});
test and test<br>
test and not
你能提供樣品的輸入和期望的輸出? – marvel308
我懷疑你需要's.replace(/ \ b(\ w +)\ s +和\ s + \ 1 \ b | \ band \ b/gi,函數($ 0,$ 1){return $ 1?$ 1: NEW_VALUE「})'。 –