分组的意义是多个字符中选择一个,关键是“字符”两个字。
有很多元字符在[]中并不具有特殊的意义。
下面是几个简单的用法
package com.hf.regxTest.common;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 测试分组符号
* @author Administrator
*
*/
public class ZifuzuTest {
public static void test(String pString,String value){
System.out.println("正则式:"+pString);
System.out.println("值:"+value);
Pattern p=Pattern.compile(pString);
Matcher m = p.matcher(value);
while(m.find()){
int start=m.start();
int end=m.end();
System.out.println("start:"+start);
System.out.println("end:"+end);
String g = m.group();
System.out.println("group:"+g);
}
System.out.println("\n");
}
/**
* @param args
*/
public static void main(String[] args) {
/**
* 测试字符组[]
*/
String pString="[wq]";
String value="w";
test(pString,value);
/**
* 测试字符组[]中的^,在开头代表了非。但在别的
* 位置只是普通字符
*/
pString="[^0-9]";//"[0-9^]";
value="-";
test(pString,value);
/**
* 测试字符组[]中-和,-在两个字符之间是连字符,但在别的
* 位置只是普通字符
*/
pString="[0-9]";//"[-09]"
value="-";
test(pString,value);
/**
* 测试字符组[]中".","?","(",")",这几个个字符只是普通字符
*/
pString="[.?]";//"[-09]"
value=".";
test(pString,value);
/**
* 测试字符组q[^u],这个例子说明q后面需要跟上一个非u的字符。
* 但不能没有字符
*/
pString="q[^u]";
value="q";
test(pString,value);
}
}