常用正则表达式
a 单独的字母就表示这个字母
\\d 表示数字
\\D 表示[^\\d]
\\W 非[a-zA-Z0-9]
\\w 表示[a-zA-Z0-9]的字母 相当于[^\\W]
\\u 表示16进制字符
/t 表示制表符
/n 换行符
/f 换页
/e 转义字符
[abc] 表示a|b|c
[^abc] 除了a|b|c
[a-zA-Z0-9] 表示a-z或A-Z或0-9中的一个字符
[a-z] 表示a-z中的一个字符
\\s 空白符
\\S 非空白符 [^\\s]
^ 放到[]中表示除了,在其他地方表示以。。。开头
$ 表示以。。。结尾
. 表示任意字符
[] 表示匹配[]中任意一个字符
() 表示一个子正则表达式
\\b 表示词字符
表次数
? 出现0次或者1次
\+ 出现1次或者多次
\* 出现0次或者多次
{n} 出现n次
{n,} 至少出现n次
{,n} 最多出现n次
{n,m} 出现至少n次,至多m次
| 或,如(-|\\+)? 表示-或+出现0次或者1次
Java API
String类提供的可使用正则的方法
boolean String.matches(String regex); 当前字符串是否匹配正则表达式,如判断一个字符串是否是邮箱名称a
String [] String.split(String regex); 按regex拆分,如"hello, word !!!".split("\\W+")
String String.replaceAll(String regex,String str); 将字符串中与regex匹配的字符串都替换成str
String String.replaceFirst(String regex,String str); 将字符串中与regex匹配的字符串中的第一个替换成str
Java中常用的正则表达式API
1、创建一个正则匹配规则。 Pattern p = Pattern.compile("正则表达式");
2、创建一个匹配器 Matcher m = p.matcher(String);
3、索引到下一个可匹配规则的子串,找到返回true m.find()
4、返回当前索引的子串 m.group();
5、从字符串的第i个位置开始进行匹配 m.find(i)
6、忽略大小写匹配 Pattern p = Pattern.compile(String regex,Pattern.CASE_INSENSITIVE); 第二个参数,CASE_INSENSITIVE
7、多行匹配 Pattern p = Pattern.compile(String regex,Pattern.MUTILINE); 或者直接在正则表达式前添加(?m)
8、忽略大小写+多行匹配 Pattern p = Pattern.compile(String regex,Pattern.CASE_INSENSITIVE|Pattern.MUTILINE);
9、找到子表达式匹配的串 m.group(i),表示第i个子表达式匹配到的串
10、重置匹配器 m.reset(String str); 如读取文件进行正则匹配,每次读取一行,需要进行对匹配的文字进行重置