【发布时间】:2014-04-25 18:14:23
【问题描述】:
我有一个方法,它的输入是一个 URL 字符串。我会使用不同类型的 URL(我在下面提到的示例 5 个 URL)
String url1 = "http://domainName/contentid/controller_hscc.jsp?q=1" ;
String url2 = "http://domainName/contentid/controller.jsp?waitage=1" ;
String url3 = "http://domainName/contentid/controller_runner.jsp" ;
String url4 = "http://domainName/contentid/jump.jsp?q=5" ;
String url5 = "http://domainName/contentid/jump.jsp" ;
我需要查找此 URL 中是否包含 controller*.jsp 模式。如果是这样,我将不得不为此编写一些其他逻辑。
现在,我需要知道如何在 java 中编写* controller*.jsp 模式
我用这种方式写了一个正则表达式,它总是返回 false
boolean retVal = Pattern.matches("^(controller)*", url) ;
PS:我用的是JDK1.4
EDIT-1
我尝试了以下方式。还是不工作
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HelloWorld{
public static void main(String []args){
String url = "http://domainName/contentid/controller_hscc.jsp?q=1" ;
//String url = "baaaaab" ;
String regex = "/controller(\\w+)?\\.jsp*" ;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(url);
System.out.println(m.matches());
}
}
【问题讨论】:
-
解决了您的问题吗?
-
仅供参考:以下是来自Stack Overflow Regular Expressions FAQ 的与您的问题相关的两个答案:validating urls 和 validating urls with host/port。两者都列在“常见验证任务”下。