上一节简单介绍了正则表达式,这一节将介绍正则表达式的一些基础用法
课外话:最详细的东西还是在原版jdk文档里面去看吧,或者一些简单的学习型网站中去看也行,比如w3school都有,我这里面更多的是一些比较难以理解,学习的时候会产生混淆的介绍。
首先几个符号的意思(),{},[]
()用来进行分组,如a(bcd)e就表示匹配abcde。
{m,n}用来进行限制次数
[]里面可以有多个字符,但是都是或的关系,只能出现里面的一个,比如a[bv]c,表示要么是abc,要么是avc,不可能是abvc,或者其他。它和()的关系是a[bv]c相当于a(b|v)c。
.的意思:表示匹配任意字符(与行结束符可能匹配,也可能不匹配)
预处理符号(在jdk里面是这么来叫的,其实意思很容易理解,就是原本我需要用[a-zA-Z_0-9]来表示小写字符,但是现在我只需要\w来表示即可,也就是说我已经预先给你顶了一个这么字符来表示小写字母的范围,你只要拿去用就可以了):其中的\一定要double,也就是\\表示转义,因为java中\本身就意味着转义,所以你需要在家一个\来去除这一层意思。
数量词的含义:
x? 表示0或1,最好的记忆方式其实就是true or false
x* 0或多次
x+ 1次或多次 比*多一次就行了
x{n}恰好n次
x{n,}至少n次
x{n,m}至少n次,最多m次
最后来一个简单的demo做个总结
//验证email
public class RegTest{
public static void main(string[] args){
String str = "1000@qq.com";
String reg = "\\w+@(\\w+.)+[a-z]{2,3}";//@前面的字符没有限制,大家也可以限制他的长度,后
//@后面可以是.com.cn同样的长度也没有限制。
boolean flag = str.matches(reg);
}
}