Java中的正则表达式字符串

时间:2012-10-28 04:46:23

标签: java sql regex

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

  1. 子字符串的开头以'WWW'
  2. 开头
  3. 子字符串的结尾是冒号':'
  4. 我在SQL中有一些使用Like子句的经验,例如:

    Select field1 from A where field2 like '%[A-Z]'
    

    因此,如果我使用SQL,我会编码:

    like '%WWW%:'
    

    如何在Java中启动它?

4 个答案:

答案 0 :(得分:3)

   Pattern p = Pattern.compile("WWW.*:");
   Matcher m = p.matcher("zxdfefefefWWW837eghdehgfh:djf");
   while (m.find()){
       System.out.println(m.group());
   }

答案 1 :(得分:1)

如果您只想匹配单词字符和.,那么您可能希望将正则表达式用作"WWW[\\w.]+:"

    Pattern p = Pattern.compile("WWW[\\w.]+:");
    Matcher m = p.matcher("WWW.google.com:hello");
    System.out.println(m.find()); //prints true
    System.out.println(m.group()); // prints WWW.google.com:

如果您想匹配任何字符,那么您可能希望将正则表达式用作"WWW[\\w\\W]+:"

    Pattern p = Pattern.compile("WWW[\\w\\W]+:");
    Matcher m = p.matcher("WWW.googgle_$#.com:hello");
    System.out.println(m.find());
    System.out.println(m.group());

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

答案 2 :(得分:1)

这是使用子字符串的另一个例子。

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);
}

答案 3 :(得分:0)

如果我理解正确

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: