2015-04-22 50 views
-2

我需要建立一個正則表達式,將返回true或false是指定的單詞是在同一句與單詞「縣」或「縣「並且出現在這些單詞之前或之後,並且與」縣「或」縣「相距不超過10個單詞或100個字符。正則表達式返回匹配,如果在另一個單詞的特定距離發現單詞

例如:

縣試驗測試1測試2字TEST3 TEST4

測試TEST1 TEST2 TEST3字TEST4 TEST5縣TEST6 TEST7

應返回true,而

縣TEST1 TEST2 TEST3 TEST4 TEST5 TEST6 TEST7 test8 test9測試test8 TEST3 TEST4字TEST5 TEST7

應該返回false

這裏是我的了:

\bWord\W+(?:\w+\W+){0,10}?Counties\b 

我增加了縣,但它只工作到目前爲止,如果單詞縣和/或縣在Word之後:

\bWord\W+(?:\w+\W+){0,10}?(Counties|County)\b 

任何人都可以請我指出正確的方向嗎?

+0

你有什麼試過?如果您不包含需要幫助的代碼,那麼在代碼中幫助您非常困難。此外,您可能想要查看SO的[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)頁面。 – ghoti

+0

什麼語言?這可能最好分兩步處理。 – dawg

+0

我只是試圖讓它在這裏工作https://regex101.com/ – ElenaDBA

回答

1

這是否解決您的問題?嘗試regex101

Word\s\W*(?:(?!Word)\w+\W*){0,10}?(?:Counties|County)|(?:Counties|County)\s\W*(?:\w+\W*){0,10}?Word 
+0

這是大多數時間工作。但是如果我有這樣的事情「再次測試字符串測試縣(測試2,測試,字)」呢?我試過了,但沒有奏效。括號是否是一個問題? – ElenaDBA

+0

是的,括號(以及逗號)可能是導致它不起作用的原因。你可以嘗試用'\ W +'(一個或多個非單詞字符)替換上面'\ s'(一個空格)的出現。 –

+0

@ElenaDBA我更新了正則表達式 – Yaroslav

相關問題