要从一个包含b[][],l[],r[]的字符串中截取出这三个串。
例:
“有一个b[yan\]g][d\[an]的r[y\[ou]句子中窃取出l[she]”
匹配的结果应该是b[yan\]g][d\[an],r[y\[ou],l[she]
重点在于,在截取的串的[]里面可以存在以“\]”和“\[”形式存在的串,但不能有单个的“[”,“]”存在。望各位前辈指点。
例:
“有一个b[yan\]g][d\[an]的r[y\[ou]句子中窃取出l[she]”
匹配的结果应该是b[yan\]g][d\[an],r[y\[ou],l[she]
重点在于,在截取的串的[]里面可以存在以“\]”和“\[”形式存在的串,但不能有单个的“[”,“]”存在。望各位前辈指点。
package com.saturday.asm;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class MyRegExp {
public static void main(String[] args){
String sInput="有一个b[yan\\]g][d\\[an]的r[y\\[ou]句子中窃取出l[she]";
String sReg="\\w+(\\["
+"([^\\[\\]]|(?<=\\\\)[\\[\\]])*"
+"\\])+";
Pattern p=Pattern.compile(sReg);
Matcher m=p.matcher(sInput);
while(m.find()){
System.out.println(m.group());
}
}
}