Java 有效的正则表达式,适用于以我的域、协议、视图和 URL 的其余部分开头的任何 URL



我需要一个正则表达式字符串来匹配以"https"www.mydomain.com","myView"开头的URL?"网址的其余部分"正则表达式用于 jsf 视图 no for 代码。

有效网址:

https://www.mydomain.com/myView?z
https://www.mydomain.com/myView?a=hello&b=world&c=how&d=are&e=you
https://www.mydomain.com/myView?a=hello&b=world&c=how&d=are&e=(you)

无效网址:

https://www.mydomain.com/myView?
https://www.mydomain.com/myView
https://www.mydomain.com/myViewfdgdfgfd

测试代码:

//Pattern to check if this is a valid URL address, not work
Pattern p = Pattern.compile("^(https://www.mydomain.com/myView?)");
Matcher m;
m=p.matcher(urlAddress);
这是一个

简单的案例。这只有两部分,表达式的开头和其余部分。

开始表达式:

^https://www.mydomain.com/myView\?
网址

的其余部分(有效的网址字符):

[a-zA-Z0-9~!';@#\^\$%&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\s]

测试代码:

    String regex = "^https://www.mydomain.com/myView\?[a-zA-Z0-9~!';@#\^\$%&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\s]+";
    String validUrlchars = "[a-zA-Z0-9~!';@#\^\$%&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\s]";
    String url1 = "https://www.mydomain.com/myView?z";
    String url2 = "https://www.mydomain.com/myView?";
    String url3 = "https://www.mydomain.com/myView";
    String url4 = "https://www.mydomain.com/myViewfdgdfgfd";
    String url5 = "https://www.mydomain.com/myView?a=hello&b=world&c=how&d=are&e=you";
    String url6 = "https://www.mydomain.com/myView?a=hello&b=world&c=how&d=are&e=(you)";
    Pattern p = Pattern.compile(regex);
    Matcher m;
    m = p.matcher(url1);
    System.out.println(m.matches() + " " + url1);
    m = p.matcher(url2);
    System.out.println(m.matches() + " " + url2);
    m = p.matcher(url3);
    System.out.println(m.matches() + " " + url3);
    m = p.matcher(url4);
    System.out.println(m.matches() + " " + url4);
    m = p.matcher(url5);
    System.out.println(m.matches() + " " + url5);
    m = p.matcher(url6);
    System.out.println(m.matches() + " " + url6);

输出:

true https://www.mydomain.com/myView?z
false https://www.mydomain.com/myView?
false https://www.mydomain.com/myView
false https://www.mydomain.com/myViewfdgdfgfd
true https://www.mydomain.com/myView?a=hello&b=world&c=how&d=are&e=you
true https://www.mydomain.com/myView?a=hello&b=world&c=how&d=are&e=(you)

最新更新