Java中正则表达式主要使用Pattern和Matcher配合使用。(大体了解正则的作用,具体使用的时候可以查阅资料)
1)String ->Pattern.compile(string)->Pattern对象实例p->p.matcher(regE)->Matcher对象实例m。
2)m下的find()/group()/group(int i)/replaceAll(String strReplace)
看例子:
1.Group:组是用括号划分的正则表达式,可以根据组的编号来引用某个组。组号为0表示整个表达式,组号1表示被第一对括号括起来的组,组号2是第二对括号括起来的组,以此类推。
匹配出”ftp://www.w3.org/TR/xhtml1/DTD/”
+ “,http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”
+ “,http://www.w3.org/HR/xhtml1/DTD/”
中的”TR”之前的那一串。
Pattern p =Pattern.compile("([^,]+)TR");
Matcher m = p.matcher("ftp://www.w3.org/TR/xhtml1/DTD/"
+ ",http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+ ",http://www.w3.org/HR/xhtml1/DTD/");
while (m.find()) {
System.out.println(m.group(1));
}
System.out.println(m.group(0));和System.out.println(m.group(1));的区别就在于,group(0)【等同于group()】匹配整个表达式"([^,]+)TR",而group(1)匹配整个表达式的第一个组。
2.replaceAll:
替换字符串中怪异符号。
String regEx2 = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’\"。,、?]";// 各种奇怪符号
Pattern p2 = Pattern.compile(regEx2);
Matcher m2 = p2.matcher(str);
String trim = m2.replaceAll("").trim();
System.out.println(trim);