二、方括号匹配
在上一节中,我们讲到了,利用通配符可以匹配任意元素,但是,我们在实际开发中,往往会只匹配指定的元素,如何来实现呢?
在正则表达式中,[]是对指定的元素进行匹配,只有在[]里的元素才能参与匹配。
注:[]只能匹配单个字符,也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”,但“Toon”不匹配。
见代码示例:
1 public class RegExp { 2 private Pattern patt; 3 private Matcher matcher; 4 /** 5 * 方括号匹配: 只有方括号里面指定的字符才参与匹配。 6 * 也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。 7 * 但“Toon”不匹配,因为在方括号之内只能匹配单个字符 8 * @param regStr 匹配字符串 9 * @param regex 正则表达式 10 * @return 11 */ 12 public boolean squareReg(String regStr,String regex){ 13 return this.commonRegExp(regStr, regex); 14 } 15 private boolean commonRegExp(String regStr,String regex){ 16 boolean wildcard_Res=false; 17 patt=Pattern.compile(regex); 18 matcher=patt.matcher(regStr); 19 wildcard_Res= matcher.find(); 20 return wildcard_Res; 21 } 22 }
1 public class TestRegExp { 2 public static void main(String[] args) { 3 RegExp re=new RegExp(); 4 boolean wildcard_Res=false; 5 //[]号匹配 6 wildcard_Res=re.squareReg("ton", "t[aoe]n"); 7 System.out.println(wildcard_Res); 8 //输出:wildcard_Res=true 9 }