要取出小括号内的数据,需要先匹配出小括号内的数据,然后对数据进行切分.
具体的Java程序如下
import java.util.regex.Matcherimport 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字符串冒号后面就没有空格: