java有效正则表达式,适用于以my domain、protocol、view和url其余部分开头的任何url

java有效正则表达式,适用于以my domain、protocol、view和url其余部分开头的任何url,java,regex,Java,Regex,我需要一个正则表达式字符串来匹配以“https”“www.mydomain.com”“myView”“URL的其余部分”开头的URL 正则表达式用于jsf视图中,没有代码 有效URL: 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&a

我需要一个正则表达式字符串来匹配以“https”“www.mydomain.com”“myView”“URL的其余部分”开头的URL 正则表达式用于jsf视图中,没有代码

有效URL:

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)
无效URL:

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)
测试代码:

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)

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

开始表达式:

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)
url()的其余部分:

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)
测试代码:

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)
输出:

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)

你试过什么吗?你好像没花多少力气。你应该好好研究一下正则表达式。。对于未显示的任何努力(这是一个代码请求),-1您的任何努力。此外,类已经实现了解析URL所需的所有逻辑。考虑使用它代替正则表达式。实际上,您自己编写了大部分正则表达式。添加一个起始锚点,转义元字符,并在
之后使用
\S+
,您也从未提及正则表达式是否应解释
www