正则表达式

在java中正则表达式就是字符串;

在这里插入图片描述

正则表达式的字符类

1.字符类: 用定义能出现或者不能出现哪些字符的规则
2.普通的字符串就是一个正则表达式, 但是只能表示它自身. 无法匹配一类字符串.
3.String类中有一个方法,matches(String regex), 只有把写的正则表达式放在这个方法的参数位置,才能校验一个字符串是否符合正则表示. 如果匹配返回true, 不匹配返回false; 
4.正则表达式符号类写法: 使用符号是[]. 中括号中可以出现一个或多个字符.  无论中括号中出现多少个字符, 只能匹配其中的一个.
5.常用的字符类正则表达式:
[abc]: 表示a或b或c之间的一个出现就是匹配正则 
[^abc]: 表示不是a或b或c之间其中一个都匹配这个正则
[0123456789]:表示数字字符中任意一个都匹配正则
[0-9]:表示数字字符中任意一个都匹配正则
[abcdefghijklmnopqrstuvwxyz]: 表示小写字母的任意一个匹配的正则
[a-z]:表示小写字母的任意一个匹配的正则
[ABCDEFGHIJKLMNOPQRSTUVWXYZ]:表示大写字母的任意一个匹配的正则
[A-Z]:表示大写字母的任意一个匹配的正则
[^A-Z]:表示非大写字母的任意一个匹配的正则
[0-9a-z]:表示数字或者小写字母的任意一个匹配的正则
[0-9-a-zA-Z]:表示数字或者小写字母或者大写字母的任意一个匹配的正则
[^0-9-a-zA-Z]:表示非数字或者小写字母或者大写字母的任意一个匹配的正则

正则预定义字符类

1.有一些字符序列经常被使用到, 所以就在正则中使用一些特殊符号代替这些字符序列,这些符号就是预定义字符.
2.常用预定义字符:
. 点就表示任意一个字符. 只能表示一个.
只匹配一个点的正则: \. 在java中\不允许单独出现: 写\\就表示一个\
\d: 表示数字字符 等价于 [0-9]
\D: 表示数字字符  等价于[^0-9]
\w:  等价于[0-9a-zA-Z_]
\W:  等价于[^0-9a-zA-Z_]
\s: 表示空格
\S: 非空格

正则表达式中的数量词

1.无论是字符类还是预定义字符类都只能表示一个字符, 无法匹配0或者多个.所以需要使用数量词来修饰规则.
2.注释事项: 数量词只能修饰紧挨着的规则中内容出现的次数. 与前面间隔的或者数量词后面的内容无关  例如:  [p][a]{5}[1]  {5}就是数量词, 只能限制[a]出现次数
3.模糊数量词:
X?   表达X这个字符,能出现0次或者1次  [0, 1]
X+   表示X这个字符, 出现1或者多次,  出现次数要大于等于1. [1 +∞)
X*   表示X这个字符, 能出现任意次    [0, +∞)
4.精确数量词
X{n}:  表示X这个字符必须出现n次. 
X{n,}:  表示X这个字符至少出现n次. [n, +∞)    注意: 逗号后不要加空格
X{n,m}: 表示X这个字符出现n到m次. [n,m]     注意: 逗号后不要加空格

String类型和正则相关的三个方法

1.boolean matches(String regex) : 判断一个字符串是否符合正则表达式
2.String[] split(String regex): 把一个字符串按照正则表达式分隔若干份,存储一个String数组中返回.
3.String replaceAll(String regex, String replacement ): 把字符串中符合正则表达式regex的内容全部替换为replacement ;

练习
1.定义一个正则表达式: 用来校验一个手机号是否合法

合法手机号的规则
1.长度11位
2.首位必须是1
3.纯数字组成
4.第二位: 3,4,5,6, 7,8,9 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值