【问题标题】:Find duplicate webaddress through regex通过正则表达式查找重复的网址
【发布时间】:2015-04-11 19:09:09
【问题描述】:

如果有人错误地键入了两次网址,我想使用正则表达式查找重复的网址。示例:

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

它应该抛出一个错误。

我检查了规则\b(\w+)\s+\1\b,它对我不起作用。

谁能帮我找到规则?

【问题讨论】:

  • 为什么\s+,里面没有空格? \w 不会匹配典型 URL 中的所有字符。最后一个\b 使它在这种情况下不起作用,因为在? 之后没有\b
  • /(.*)\1/ 有效,它必须比这更准确吗?

标签: regex duplicates webaddress


【解决方案1】:

这不起作用,因为(\w+) 仅适用于字符。

您似乎想在以“http://”开头的字符串中搜索非空白字符

你可以这样做:\b(http://\S+)\s*\1

【讨论】:

  • 它适用于示例 if 您删除最后一个 \b (请参阅我对问题的评论)(并转义斜杠,但这可能取决于引擎) .
  • @Biffen 谢谢,我反射性地添加了\b,但我仍然对它不起作用感到惊讶。是否有不允许尾随 \bs 的原因?
  • 在这种情况下,这是因为在? 之后没有\b\b 用于 word 边界,? 不是单词字符。
猜你喜欢
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 2016-11-14
  • 2015-01-10
  • 1970-01-01
相关资源
最近更新 更多