正则表达式基础应用(匹配)
字符 x
字符 x
反斜线字符
字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) [a-z&&[def]] d、e 或 f(交集) [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) d 数字:[0-9] D 非数字: [^0-9] s 空白字符:[ tnx0Bfr] S 非空白字符:[^s] w 单词字符:[a-zA-Z_0-9] W 非单词字符:[^w]
边界匹配器 ^ 行的开头 $ 行的结尾 b 单词边界 B 非单词边界 A 输入的开头 G 上一个匹配的结尾 Z 输入的结尾,仅用于最后的结束符(如果有的话) z 输入的结尾
数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m 次
运算符 XY X 后跟 Y X|Y X 或 Y (X) X,作为捕获组
举例说明
1. 邮箱匹配
要求:
@符前字母、数字或者下划线都可以,@后面字母或数字,不能是_,最后跟上.com
String qq = "leib_32ad@sina.com"; String regex = "w*@[w&&[^_]]*.com"; boolean flage = qq.matches(regex); System.out.println("电子邮箱-"+flage);
打印结果:电子邮箱-true
2.手机号码匹配
要求:
11为数字串,但是第一位不能为0 String phone = "13641699925"; String regex2 = "[1-9]d{10}"; boolean flage2 = phone.matches(regex2); System.out.println("手机号码-"+flage2);
打印结果:手机号码-true
3. 长度8或者长度11,以数字为例
要求:
数字串长度或8位,或11位
String langthNum = "13640690";//13640690111 长度为11的字符串 String langthNumRegex = "d{8}|d{11}"; boolean flage3 = langthNum.matches(langthNumRegex); System.out.println("长度8或长度11-"+flage3);
打印结果:长度8或长度11-true (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|