在Java中,我正在尝试编写一个正则表达式来匹配一种特殊的HTTP URL:
http://<any-string-of-1-or-more-chars>/#<any-string-of-0-or-more-chars>
所以字符串有4个段:
“传递”字符串的示例:
等。我最好的尝试是:
String regex = "http://*/#*";
然而,当我试一试时:
String test = "http://example.com/#";
String regex = "http://*/#*";
if(test.matches(regex))
System.out.println("I match!");
else
System.err.println("I don't match!");
我哪里出错了,我的正则表达应该是什么(以及为什么)?
答案 0 :(得分:6)
在正则表达式中,如果您想匹配1个或多个任何字符,请使用.+
使用.*
最好通过一个好的正则表达式教程,如:http://regular-expressions.info
您可以使用此正则表达式:
String regex = "^https?://.+?/#.*$";
答案 1 :(得分:0)
任何串-的-1-或者更多字符
这是.+
,而不是*
任何串-的-O-或者更多字符
这是.*
,而不是*