正则表达式
正则表达式概念:
正则表达式(regular expression)描述了一种字符串 (缩写regex)匹配的模式,可以用来:校验
检查一个串中是否含有符合某个规则的子串,并且可以得到这个子串;
根据匹配规则对字符串进行灵活的替换操作。
常见表达式:
[a] :匹配a这个字符 当一个字符时[]可以省略
[abc] :匹配a,b,c中的任意字符
[0-9] :匹配0-9中的一个数字
[a-z] :匹配26个英文小写字母
[A-Z] :匹配26个英文大写字母
[a-zA-Z]:匹配26个英文字母
[a-zA-Z0-9]:英数(英文 数字)
[a-zA-Z0-9_] : 匹配单词字母(匹配字母,数字,下划线)
\d :匹配0-9中的一个数字
\w : 匹配单词字母(匹配字母,数字,下划线)
\D : 匹配非数字
\W : 匹配非单词
\s : 匹配空白字符(空格,换行,tab制表符)
. 匹配任意字符
?:最多出现一次
+:至少出现一次
*:可出现任意次数
|左右两边表达式之间 "或" 关系。
{n} :代表出现n次
{n,}:代表出现至少N次 a{3,}
{n, m}:代表最少出现n次,最多出现m次
^ :①如果出现在正则表达式的第一个字符上,
代表以...开头,
②、否则代表非
$ : 代表以...结尾
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
应用
String中方法
replaceAll(String regex)
split(String regex)
matches(String regex) 告知此字符串是否匹配给定的正则表达式。 (String reg) 返回布尔类型
专门用作正则表达式的API类
Pattern pattern = Pattern.compile(regex);
Matcher match = pattern.matcher(str);
while(match.find()){//代表发现匹配的元素
String content = match.group();//获取正则表达式匹配的内容
}