正则匹配括号内数据

Python011

正则匹配括号内数据,第1张

要取出小括号内的数据,需要先匹配出小括号内的数据,然后对数据进行切分.

具体的Java程序如下

import java.util.regex.Matcher

import java.util.regex.Pattern

public class AA {

 public static void main(String[] args) {

  String name="nicefoela"

  String str="nicefoela, pos=(1386.7, 61.1, 157.3),"

  Pattern pattern = Pattern.compile(name+", pos=\\((.*?)\\)")

  Matcher m = pattern.matcher(str)

  while(m.find()){

   String s=m.group(1)

   String[] data=s.split(",")

   for(int i=0i<data.lengthi++){

    System.out.println(data[i].trim())

   }

  }

 }

}

find()方法是部分匹配,是查找输入串中与模式匹配的子串。

matches()是全部匹配,是将整个输入串与模式匹配,因此只有整个字符串都符合正则表达式才会返回true

System.out.println(Pattern.matches("\\[.+?\\]", "[呵呵]"))

我觉得楼上那位说把中括号里的取出来处理了再弄回去可行啊,把原字符串一分为三,把中间处理了再组合起来,但是我写的这个很low只能处理一次中括号:

运行结果:

再说了,json对于冒号后面有无空格根本就无所谓,为什么你们要要求冒号后面有空格?感觉就是没事找事,以阿里巴巴的fastjson为例,他们转出来json字符串冒号后面就没有空格: