2015-02-11 24 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