我找不到与以下字符串匹配的正则表达式。
Korben;http://feeds.feedburner.com/KorbensBlog-UpgradeYourMind?format=xml;1
一个问题是逃避问号。 Java的模式匹配器似乎不接受\?
作为有效的转义序列,但它也无法与myregexp.com上的测试人员一起使用。
这是我到目前为止所拥有的:
([a-zA-Z0-9])+;http://([a-zA-Z0-9./-]+);[0-9]+
有什么建议吗?
编辑:最初的意图是匹配在第一个分号后可以找到的所有网址。
答案 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编辑网站上为我工作。