我想要做的是檢查相鄰的重複單詞,但即使在中間有標點符號也是如此。用於標點符號的重複單詞的正則表達式
例如:
Vivamus Vivamus diam, diam, Vivamus Vivamus diam, diam Vivamus
這裏應該有4次不同的命中。
我想不通爲什麼這是行不通的;有人可以解釋爲什麼,並告訴我什麼是正確的代碼應該是什麼?
謝謝。
(\w*(?:[ ,\.])*?)\1
PS:由於混淆,原因,我不會說我使用Perl的引擎。
我想要做的是檢查相鄰的重複單詞,但即使在中間有標點符號也是如此。用於標點符號的重複單詞的正則表達式
例如:
Vivamus Vivamus diam, diam, Vivamus Vivamus diam, diam Vivamus
這裏應該有4次不同的命中。
我想不通爲什麼這是行不通的;有人可以解釋爲什麼,並告訴我什麼是正確的代碼應該是什麼?
謝謝。
(\w*(?:[ ,\.])*?)\1
PS:由於混淆,原因,我不會說我使用Perl的引擎。
(?:
是一個非捕獲括號,這意味着它不會存儲匹配。您將需要使用捕獲括號。
(\w+)\W+\1
原始表達式不會爲標點符號創建單獨的捕捉,但在第一次捕捉中包含捕捉到的標點符號。這意味着它會發現的東西,如:
diam, diam, really, really, twice.
但你是不是在標點符號很感興趣,所以tj111的解決方案正常工作,即使「(?)是一個非捕獲括號」的解釋是有點...不完整?引用的評論是準確的,但這不是整體正則表達式失敗的原因。
[[\w|\W]+ ]+
爲我工作。擊穿:
\w
:字字符
\W
:非文字字符
[\w|\W]+
:每個字符可以由單詞或非字字符並重復1次或多次
[[\w|\W]+ ]+
:.. 。在某個時間點附加空間,全部發生1次或多次
NNNEEeeeeAAAAAAAHhhhhhhhhh ..... NOT WORD !!!!而已! 謝謝! – Keng 2008-10-17 20:59:25