用java正则表达式匹配方括号问题

Python017

用java正则表达式匹配方括号问题,第1张

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

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

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

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

具体的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())

   }

  }

 }

}