------- android培训、java培训、期待与您交流! ----------
正则:
如果要操作正则,那么必须使用一系列的正则匹配符号,而所有的符号都在java.util.regex包中
方法:matchs正则验证
replaceAll全部替换
replaceFirst替换首个
split(String regex)全部拆分
split(String regex,int limit)部分拆分
一、正则符号:
1、 表示单个字符(每出现一个只表示一位)
x:表示只能由x组成\\:表示转义字符“\”
\t:匹配“tab”键
\n:匹配换行
2、 表示字符的选用范围
[abc]:表示可能是a.b.c中的任意一个[^abc]:表示不是a.b.c中任意一个
[a-zA-Z]表示任意一位字母
[0-9]表示任意一位数字
3、 简化表达式
· :表示任意一位字符\d:表示一位数字,相当于[0-9]
\D表示不是一位数字相当于[^0-9]
\s表示任意一位空格
\S表示不是任意一位空格
\w表示大小写字母,数字,_中任意一位
\W相反
4、 边界匹配
^写在正则之前,表示正则开始$写在正则最后,表示正则结束
5、 数量表示:如果没有数量,每一个表示一位,有了数量才能表示多位
正则?:表示只能出现0位或者1位正则*表示此正则出现0次,一次,或多次
正则+表示出现一次或多次
正则{n}表示正好出现n次
正则{n,}表示出现n次以上
正则{n,m}表示最少n次,最多m次
6、 逻辑操作符
正则X正则Y表示正则X判断后执行正则Y正则X|正则Y表示两个正则二选一
(正则)包含多个正则,成为一组
二、通过String类操作正则:
正则的所有操作方法都通过String类完成,下面举例说明
字符串替换:
//要求把它全部留下字母
String s="ue9hthg93ektgd9en9ofjem380rf9d7d9";
String regex="[^a-zA-Z]";
System.out.println(s.replaceAll(regex,""));
字符串拆分:
//用数字分割
String s="a1b22c333d444e55555";
String regex="\\d+";
String[] s1=s.split(regex);
for(int i=0;i<s1.length;i++){
System.out.println(s1[i]);
}
验证用户名
//验证用户名
String s="hello124";
String regex="\\w{6,15}";
System.out.println(s.matches(regex));
验证小数
String s="98.23";
String regex="\\d{1,3}(\\.\\d{1,2})?";
System.out.println(s.matches(regex));
验证email地址:
用户名以字母、数字、-组成
以字母开头,6-20位之间
域名.com/cn/com.cn/net.cn
对问题进行拆分
String s="hidnfg@hid.com";
String regex="[a-zA-Z][a-zA-Z0-9_\\.]{5,18}@[a-zA-Z-0-9]+\\.(com|cn|net)";
System.out.println(s.matches(regex));