正则表达式和匹配URL与元字符

时间:2010-03-26 00:51:07

标签: java regex

我找不到与以下字符串匹配的正则表达式。

Korben;http://feeds.feedburner.com/KorbensBlog-UpgradeYourMind?format=xml;1

一个问题是逃避问号。 Java的模式匹配器似乎不接受\?作为有效的转义序列,但它也无法与myregexp.com上的测试人员一起使用。

这是我到目前为止所拥有的:

([a-zA-Z0-9])+;http://([a-zA-Z0-9./-]+);[0-9]+

有什么建议吗?

编辑:最初的意图是匹配在第一个分号后可以找到的所有网址。

4 个答案:

答案 0 :(得分:3)

如果要将表达式放在字符串中,则还需要转义“\”。那就是:

String expr = "([a-zA-Z0-9])+;http://([a-zA-Z0-9./\\-\\?]+);[0-9]+";

如果它不是字符类([...])构造中的最后一个字符,则还需要转义“ - ”。

答案 1 :(得分:1)

[?]匹配“?”

答案 2 :(得分:1)

如果你的表达式是一个字符串,也许你需要逃避反斜杠。像"\\?"

这样的东西

答案 3 :(得分:1)

([a-zA-Z0-9]+);http://([a-zA-Z0-9./-]+)(\?[^;]+);([0-9]+)

在RegEx编辑网站上为我工作。