找不到匹配以下字符串的正则表达式时遇到问题。包含元字符的正则表达式和匹配URL
Korben;http://feeds.feedburner.com/KorbensBlog-UpgradeYourMind?format=xml;1
一个问题是逃避问号。 Java的模式匹配器似乎并不接受\?
作为有效的转义序列,但它也无法与myregexp.com上的测试器一起使用。
这是我到目前为止有:
([a-zA-Z0-9])+;http://([a-zA-Z0-9./-]+);[0-9]+
有什么建议?
编辑:最初的意图是匹配在第一个分号后可以找到的所有URL。
你也可以把 - 放在字符类的开头。 – Kibbee 2010-03-26 00:57:39
感谢codeka和其他人回复。经过一些测试后,以下内容应与所有网址匹配:([a-zA-Z0-9])+; http://([a-zA-Z0-9./\\-\\?=~] +) ; [0-9] + – 2010-03-26 01:09:46
您希望第一个加号*在圆括号内:'([a-zA-Z0-9] +)',而不是'([a-zA-Z0-9])+ 。另外,正如@DVK所指出的那样,你不需要在字符类中转义问号; '[a-zA-Z0-9 ./?-]'工作得很好。 – 2010-03-26 03:48:01