Java正则表达式用法
正则表达式(Regular Expression),又称规则表达式,是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个(规则)的文本。
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
String类里也提供了如下几个特殊的方法:
- boolean matches(String regex):判断该字符串是否匹配指定的正则表达式。
- String replaceAll(String regex,String replacement):将该字符串中所有匹配regex的子串替换成replacement。
- String replaceFirst(String regex,String replacement):将高字符串中第一个匹配regex的子串替换成replacement。
- String[] split(String regex):以regex作为分隔符,把该字符串分割成多个子串。
以上这些特殊方法都依赖于Java提供的正则表达式支持,除此之外,Java还提供了Pattern和Matcher两个类专门用于提供正则表达式支持。
Java中正则表达式常用的语法:
字符的取值范围
1.[abc]:标识可能是a,可能是b,也可能是c
2. [^abc]:标识不是a,b,c之后的任意一个
3.[a-zA-Z]:表示是英文字母
4.[0-9]:表示是数字
简洁的字符表示
.:匹配任意的字符
\d:表示数字
\D:表示非数字
\s:表示由空字符组成,[\t\n\r\x\f]
\S:表示由费空字符组成,[^\s]
\w:表示字母、数字、下划线,[a-zA-Z0-9_]
\W:表示不是由字母、数字、下划线组成
数量表达式
1.?:表示出现0次或1次
2.+:表示出现1次或多次
3.*:表示出现0次、1次或多次
4.{n}:表示出现n~m次
5.{n,m}:表示出现n~m次
6.{n,}:表示出现n次或n次以上
逻辑表达式
1.XY:表示X后跟着Y,这里X和Y分别是正则表达式的一部分
2.X|Y:表示X或Y,比如“food|f”匹配的是foo(d或f),而“(food|f)”匹配的是food或f
3.(X):子表达式,将X看做是一个整体
边界匹配符
1.^:一行的开始
2.$:一行的结束
3.\b:词的边界