今天给大家介绍下javase常用的判断以及校验方法-正则表达
正则表达式作用是对字符串进行规则性的操作.
好处:正则表达对字符串复杂操作变为简单
特点:将字符串操作例如剪切筛选,可用符号来标识.只需使用指定符号,就可以在封装的底层代码对字符串进行操作.简化代码书写和增强字符串可操作性
坏处:符号出现简化了书写,但是影响开发者的易读性.但是基于正则表达式的用法,上手其实很简单
常用方法:
第一种: 匹配
matches() 用表达式匹配整个字符串,只要出现一次不符合规则,直接返回false
public static void checkQQ(){
String qq = "qqeeq1233";
String reg = "[1-9]\\d{4,14}";
boolean flag = qq.matches(reg);
if(flag)
System.out.println(qq+"...istrue");
else
System.out.println(qq+"... 不合法");
} //不合法
第二种: 切割
split()方法 根据正则表达式匹配拆分字符串并且返回数组
public static void splitTest()
{
String str = "avg sum";
String reg = " +";//按照多个空格来进行切割
String[] arr = str.split(reg);
System.out.println(arr.length);
for(String s : arr)
{
System.out.println(s);
}
}
第三种: 替换
replaceAll(reg,str) 使用replacement 替换字符串所有匹配的正则表达式子字符串
public static void replaceDemo()
{
String str = "eqeqeeeeqeqeqewe75f";//将字符串中的数字替换成#。
str = str.replaceAll("\\d{5,}","#");
System.out.println(str);
}
第四种: 获取
将字符串中符合正则表达式规则的子字符串取出
1.将正则表达式封装为对象
2.让正则表达式对象和字符串关联
3.关联获取正则表达式匹配器
4.通过匹配对符合正则表达式的子字符串操作
public static void getDemo()
{
String str = "wo shi he ge de admin";
System.out.println(str);
String reg = "\\b[a-z]{3}\\b";//匹配只有三个字母的单词
//将规则封装成对象。
Pattern p = Pattern.compile(reg);
//让正则对象和要作用的字符串相关联。获取匹配器对象。
Matcher m = p.matcher(str);
//System.out.println(m.matches());//其实String类中的matches方法。用的就是Pattern和Matcher对象来完成的。
//只不过被String的方法封装后,用起来较为简单。但是功能却单一。
// boolean b = m.find();//将规则作用到字符串上,并进行符合规则的子串查找。
// System.out.println(b);
// System.out.println(m.group());//用于获取匹配后结果。
while(m.find())
{
System.out.println(m.group());
System.out.println(m.start()+"...."+m.end());
// start() 字符的开始下标(包含)
//end() 字符的结束下标(不包含)
}
}
最后给大家总结下 正则表达式常用公式正则表达式通用匹配符 正则表达式 | 说明 | 示例 | . | 匹配任何单个符号,包括所有字符 | match="." result: x a + x b + x c * (x d - x e ) - x f / x g | ^xxx | 在开头匹配正则xxx | | xxx$ | 在结尾匹配正则xxx | match=".g$" result:xg | [abc] | 能够匹配字母a,b或c | match="[xa]" result:x a x x x x x x | [abc][12] | 能够匹配由1或2跟着的a,b或c | | [^abc] | 当^是[]中的第一个字符时代表取反,匹配除了a,b或c之外的任意字符。 | (“[^ab][^12].”, “c3#”) – true(“[^ab]..[^12]“, “xcd3″) – true | [a-e1-8] | 匹配a到e或者1到8之间的字符 | (“[a-e1-3].”, “d#”) – true(“[a-e1-3]“, “2″) – true | xx|yy | 匹配正则xx或者yy | (“x.|y”, “xa”) – true(“x.|y”, “y”) – true |
java正则表达式元字符 正则表达式 | 说明 | \d | 任意数字,等同于[0-9] | \D | 任意非数字,等同于[^0-9] | \s | 任意空白字符,等同于[\t\n\x0B\f\r] | \S | 任意非空白字符,等同于[^\s] | \w | 任意英文字符,等同于[a-zA-Z0-9] | \W | 任意非英文字符,等同于[^\w] | \b | 单词边界,也就是指单词和空格间的位置 | \B | 非单词边界 |
正则表达式量词 正则表达式 | 说明 | x? | x没有出现或者只出现一次 | x* | x出现0次或更多 | X+ | X出现1次或更多 | X{n} | X正好出现n次 | X{n,} | X出现n次或更多 | X{n.m} | X出现至少n次但不多余m次 |
|
|