0

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

  1. 子字符串的开头以 'WWW' 开头
  2. 子字符串的结尾是一个冒号 ':'

我有一些使用 Like 子句的 SQL 经验,例如:

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

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

like '%WWW%:'

如何在 Java 中启动它?

4

4 回答 4

3
   Pattern p = Pattern.compile("WWW.*:");
   Matcher m = p.matcher("zxdfefefefWWW837eghdehgfh:djf");
   while (m.find()){
       System.out.println(m.group());
   }
于 2012-10-28T04:55:00.137 回答
1

如果您只想匹配单词字符 and .,那么您可能希望使用正则表达式作为"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());

解释:WWWand:是文字。\\w- 任何单词字符,即 az AZ 0-9。\\W- 任何非单词字符。

于 2012-10-28T04:53:04.213 回答
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);
}
于 2012-10-28T04:57:04.263 回答
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());
}

输出:

万维网:
万维网:
万维网:
万维网:
万维网:
万维网:
万维网:
于 2012-10-28T05:31:16.430 回答