2017-08-08 20 views
-1

我試圖匹配完整的單詞「和」,除了它出現在成語之前和之後重複相同的單詞,如「越來越多「或」一次又一次「。我有這個:需要一個javascript正則表達式來匹配單詞前後都沒有不同的單詞

/(\b\w*\b)\s\band\s(?!\1)/gi 

它的工作原理,除了它還捕獲「和」之前的單詞。我明白你不能在JS中做後視正則表達式...任何幫助表示讚賞!

例: 應該符合這個加上這個而不是越來越多或越來越少。

+1

你能提供樣品的輸入和期望的輸出? – marvel308

+0

我懷疑你需要's.replace(/ \ b(\ w +)\ s +和\ s + \ 1 \ b | \ band \ b/gi,函數($ 0,$ 1){return $ 1?$ 1: NEW_VALUE「})'。 –

回答

0

是否有可能讓您測試相反的結果,測試匹配對的存在並否定結果?

/(\b\w+\b)\s\band\s(\1)/gi 

我做了一個快速的幾個測試在https://regex101.com/r/ZqXbtL/1/tests,它給了我,我會期望與否定的結果。

0

我認爲它更好地獲得匹配項目的索引,並添加單詞的長度和它後面的空間以獲得索引「和」,所以你可以使用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

相關問題