正则表达式
用于声明字符串的规则表达式。
经常用于检测一个字符串是否符合特定规则。
语法:
- 字符集合:
- [abcd] abcd四个字符选一个
- [a-f] a到f字符选一个
- [^abcd] 除了abcd字符的其他字符
- 缩写版
- . 任意字符
- \d 数字
- \D 非数字
- \w 单词字符
- \W 非单词字符
- \s 空白
- \S 非空白
- 数量词
- X{n} n个X
- X{n,m} n到m个
- X{n, } 最少n个
- ? {0,1}
- {0,}
- {1,}
- 分组
- (序列1|序列2)
常见案例:
邮政编码的规则 \d{6}
身份证的规则 d{17}[\dXx]
用户名的规则: 8到11个单词字符 \w{8,11}
检查一个文件是否为jpeg照片文件: .+\.jpe?g
检查一个文件是否为照片文件: .+\.(jpe?g|png|gif)
Excel能够支持的文件名规则 : .+\.xls[xbm]?
手机号的规则: (0086|\+86)?\s*1\d{10}
String 正则API
matches
用于检测一个字符串整体是否符合指定的正则规则。
案例:
// String reg=".+\\.jpe?g";
String reg=".+\\.(jpe?g|png|gif)";
//正则表达式: .+\.(jpe?g|png|gif)
// Java 字符串: .+\\.(jpe?g|png|gif)
String file = "她.png";
System.out.println(reg);
boolean b = file.matches(reg);
System.out.println(b);
split
按照一定规则将字符串劈开
String str=
"1, 李洪鹤, 110, lihh@tedu.cn, 北京海淀区";
String[] data=str.split(",\\s*");
// "1", "李洪鹤" ...
System.out.println(data[1]);
replaceAll
replace 替换
String str = "那一年,我去你家,你说我去!"
String reg = "我去";
String s = str.replaceAll(reg, "XXX");
System.out.println(s);
网友评论