java - URL 的正则表达式模式匹配

标签 java regex

我有一个方法,其输入是一个 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());
     }
}

最佳答案

将其与以下正则表达式进行匹配:

Controller (\w+)?\.jsp

Demo

关于java - URL 的正则表达式模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23288039/

相关文章:

Java 日期时间 一天的开始和结束,没有任何时区信息

java - Eclipse 调试器中的重复变量

Javascript正则表达式从每个换行条目中捕获多行内容

python - 带有 Pandas 的 REGEX 过滤器(任何数字组合后跟 'plus' 符号)

mysql - 非英语语言的子字符串

java - 如何将@query jpa结果导出到.dat文件/

java - JLabel setText()方法据说是线程安全的,但是它能保证可见性吗

java - 使用逗号分隔值但保留括号内使用的逗号的正则表达式模式

javascript - 使用正则表达式通过匹配数字值拆分数字字符串

java - 默认加载程序存储库无法加载 MBean 类?