什么是正则表达式找到“”之间的字符串

时间:2010-06-17 23:29:07

标签: java regex

我有一个字符串如下:

“HTTP:172.1。” =(10,1,3);

“HTTP:192.168”。 =(15,2,6);

“http:192.168.1.100”=(1,2,8);

“”里面的字符串是Tag,而inside()是前面标记的值。 什么是正则表达式将返回我: 标签:http:172.1。 价值:10,1,3

1 个答案:

答案 0 :(得分:2)

这个正则表达式

"([^\"]*)"\s*=\s*\(([^\)]*)\)*.

将引号“”作为组1返回,将括号中的文本()作为组2返回。

注意:将此项保存为字符串时,您必须转义引号字符并加倍斜杠。它很快变得难以理解 - 就像这样:

"\"([^\\\"]*)\"\\s*=\\s*\\(([^\\)]*)\\)*."

编辑:根据要求,这是一个使用示例:

   Pattern p = Pattern.compile("\"([^\\\"]*)\"\\s*=\\s*\\(([^\\)]*)\\)*.");
   // put p as a class member so it's computed only once...

   String stringToMatch = "\"http://123.45\" = (0,1,3)";
   // the string to match - hardcoded here, but you will probably read 
   // this from a file or similar
   Matcher m = p.matches(stringToMatch);
   if (m.matches()) {
      String url = p.group(1);    // what's between quotes
      String value = p.group(2);   // what's between parentheses
      System.out.println("url: "+url);   // http://123.45
      System.out.println("value: "+value); // 0,1,3
   }

有关详细信息,请参阅Sun Tutorial - Regular Expressions