Java中的正则表达式字符串

Java中的正则表达式字符串,java,sql,regex,Java,Sql,Regex,我想使用一个正则表达式,在Java中提取具有以下属性的子字符串: 子字符串的开头以“WWW”开头 子字符串的结尾是冒号“:” 我在SQL中有一些使用Like子句的经验,例如: Select field1 from A where field2 like '%[A-Z]' 因此,如果我使用SQL,我会编写以下代码: like '%WWW%:' 如何在Java中启动此操作?如果只想匹配单词字符和,则可以使用正则表达式作为“WWW[\\w.]+:” 如果要匹配任何字符,则可以使用正则表达式作为“W

我想使用一个正则表达式,在Java中提取具有以下属性的子字符串:

  • 子字符串的开头以“WWW”开头
  • 子字符串的结尾是冒号“:”
  • 我在SQL中有一些使用Like子句的经验,例如:

    Select field1 from A where field2 like '%[A-Z]'
    
    因此,如果我使用SQL,我会编写以下代码:

    like '%WWW%:'
    

    如何在Java中启动此操作?

    如果只想匹配单词字符和
    ,则可以使用正则表达式作为
    “WWW[\\w.]+:”

    如果要匹配任何字符,则可以使用正则表达式作为
    “WWW[\\w\\w]+:”


    说明:
    WWW
    是文字<代码>\\w-任何单词字符,即a-z a-z 0-9
    \\W
    -任何非单词字符。

    如果只想匹配单词字符和
    ,则可以使用正则表达式作为
    “WWW[\\W.]+:”

       Pattern p = Pattern.compile("WWW.*:");
       Matcher m = p.matcher("zxdfefefefWWW837eghdehgfh:djf");
       while (m.find()){
           System.out.println(m.group());
       }
    
    如果要匹配任何字符,则可以使用正则表达式作为
    “WWW[\\w\\w]+:”


    说明:
    WWW
    是文字<代码>\\w-任何单词字符,即a-z a-z 0-9
    \\W
    -任何非单词字符。

    下面是一个使用子字符串的不同示例

       Pattern p = Pattern.compile("WWW.*:");
       Matcher m = p.matcher("zxdfefefefWWW837eghdehgfh:djf");
       while (m.find()){
           System.out.println(m.group());
       }
    
    public static void main(String[] args) {
        String example = "http://www.google.com:80";
        String substring = example.substring(example.indexOf("www"), example.lastIndexOf(":"));
        System.out.println(substring);
    }
    

    下面是一个使用子字符串的不同示例

    public static void main(String[] args) {
        String example = "http://www.google.com:80";
        String substring = example.substring(example.indexOf("www"), example.lastIndexOf(":"));
        System.out.println(substring);
    }
    

    如果我理解正确的话

    String input = "aWWW:bbbWWWa:WWW:aWWWaaa:WWWa:WWWabc:WWW:";
    Pattern p = Pattern.compile("WWW[^(WWW)|^:]*:");
    Matcher m = p.matcher(input);
    while(m.find()) {
        System.out.println(m.group());
    }
    
    输出:

    WWW: WWWa: WWW: WWWaaa: WWWa: WWWabc: WWW: WWW: WWWa: WWW: WWWaaa: WWWa: WWWabc: WWW:
    如果我理解正确的话

    String input = "aWWW:bbbWWWa:WWW:aWWWaaa:WWWa:WWWabc:WWW:";
    Pattern p = Pattern.compile("WWW[^(WWW)|^:]*:");
    Matcher m = p.matcher(input);
    while(m.find()) {
        System.out.println(m.group());
    }
    
    输出:

    WWW: WWWa: WWW: WWWaaa: WWWa: WWWabc: WWW: WWW: WWWa: WWW: WWWaaa: WWWa: WWWabc: WWW:
    我想在JavaLIKE中执行此操作,它只使用通配符
    %
    执行简单的模式匹配。我想在JavaLIKE中执行此操作,它只使用通配符
    %
    执行简单的模式匹配,这绝对是已知子字符串和分隔符的方法。比编译正则表达式效率更高。注意区分大小写的搜索和其他计划外输入(即,关闭端口;字符串
    http://www.google.com/
    将在此处抛出一个错误)。这绝对是查找已知子字符串和分隔符的方法。比编译正则表达式效率更高。注意区分大小写的搜索和其他计划外输入(即,关闭端口;字符串
    http://www.google.com/
    将在此处引发错误)。