标签:
1.反斜杠和转义字符
废话不多说,直接上demo
public static void main(String[] args) { // TODO Auto-generated method stub String phoneNum= "28516885191"; isPhoneNum(phoneNum); } //13800000876 public static void isPhoneNum(String phoneNum){ String regex= "1[34578][0-9]{9}"; String regex2= "1[34578]\\d{9}"; boolean isPhoneNum= phoneNum.matches(regex); System.out.println("is phoneNum? "+ isPhoneNum); }
总结
/*
* 正则表达式匹配数字的规则,可以用[0-9]和 \d来表示,
* 但在java语言中,\在字符串中本身是转义字符, 也就是说\不是字符本身的反斜杠\,而是有特殊意义的(转义)
* 正则中,\d,是将普通反斜杠和d连一块,表示数字 (也就是说,正则中的\不是转义字符)。所以java语言中,我们不能直接用\d来表示数字,
* 需要这样:\\d 前一个反斜杠,是转义字符,将第二个反斜杠转义字符转译成 普通的字符反斜杠
*
* */
组的使用及切割:
public static void main(String[] args) { // TODO Auto-generated method stub String string= "andittttbobmmmmmmmmmmmcyanxxdenim"; String regex= "(.)\\1+"; String[] strings= string.split(regex); for (String string2 : strings) { System.out.println("name: "+ string2 ); } }
output:
name: andi
name: bob
name: cyan
name: denim
总结:
在表达式 ((A)(B(C))) 中,存在四个组:
1 ((A)(B(C)))
2 (A)
3 (B(C))
4 (C)
组零始终代表整个表达式
3.组的使用及替换:
public static void main(String[] args) { String str1_1= "andittttbobmmmmmmmcyanxxdenim";//源字符串 String regex1= "(.)\\1+"; //目标字符串: andi#bob#cyan#denim String str1_2= str1_1.replaceAll(regex1, "#"); System.out.println("str1_2: "+ str1_2); String str2_1= "andittttbobmmmmmmmcyanxxdenim";//源字符串 String regex2= "(.)\\1+"; //目标字符串: anditbobmcyanxdenim String str2_2= str2_1.replaceAll(regex2, "$1"); System.out.println("str2_2: "+ str2_2); }
output:
str1_2: andi#bob#cyan#denim
str2_2: anditbobmcyanxdenim
总结:在String.replaceAll()方法中,使用$符号来让第二个参数使用第一个参数的值
4.1切割:
public static void main(String[] args) { // TODO Auto-generated method stub String path1= "com/westward/p/5399166";//源字符串 //目标字符串com.westward.5399166 String regex= "/"; String path2= path1.replaceAll(regex, "."); System.out.println(path2); }
output:
com.westward.p.5399166
4.2切割:
public static void main(String[] args) { // TODO Auto-generated method stub String str= "15800001111";//源字符串 // 目标字符串:158****1111; String regex= "(\\d{3})\\d{4}(\\d{4})"; String str2= str.replaceAll(regex, "$1****$2"); System.out.println("str2: "+str2 ); }
output:
str2: 158****1111
标签:
原文地址:http://www.cnblogs.com/westward/p/5399166.html