2015-02-11 53 views
1

如果有人錯誤地鍵入webadress兩次,我想使用正則表達式找到重複的web地址。例如:通過正則表達式查找重複的web地址

http://stackoverflow.com/questions/ask/advice?http://stackoverflow.com/questions/ask/advice? 

它應該會報錯。

我檢查規則\b(\w+)\s+\1\b,它不適合我。

有人可以幫我找到規則嗎?

+0

爲什麼'\ S +',有那裏沒有空格嗎?並且'\ w'不會匹配典型URL中的所有字符。最後一個'\ b'使得它在這種情況下不起作用,因爲'?'後面沒有'\ b'。 – Biffen 2015-02-11 12:08:53

+1

'/(。*)\ 1 /'起作用,它是否必須比那更確切? – Biffen 2015-02-11 12:10:53

回答

0

這不起作用,因爲(\w+)只適用於字符。

看起來你想在開頭的字符串搜索非空白字符的「http://」

你可以是這樣做的:\b(http://\S+)\s*\1

+1

它適用於例子*,如果你刪除最後一個'\ b'(參見我對該問題的評論)(並且跳過斜線,但這可能取決於引擎)。 – Biffen 2015-02-11 12:26:05

+0

@Biffen謝謝,我反思性地加了'\ b',但我仍然感到驚訝,它沒有奏效。是否有一個原因是不允許尾隨'\ b's? – 2015-02-11 12:28:29

+1

在這種情況下,這是因爲在'?'之後沒有'\ b'; '\ b'是* word *邊界,'?'不是一個單詞字符。 – Biffen 2015-02-11 12:29:30