马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
二. 正则表达式:规定字符串中字符出现规则的表达式
何时使用正则表达式:查找,验证,替换,切割
规则:
1. 最简单的正则表达式:关键词原文——必须和原文完全匹配
比如:查找关键词 “我去”
上文中所有 我去 都被选上了。
2. 备选字符集:规定某一位字符的备选字符列表,必须且只能多选一
[备选字符列表
比如:我[去勒
只能匹配文字中的所有 我去 和 我勒 。
2.1 如果备选字符的unicode号连续:
可用 - 连接开头字符和结尾字符
比如:1位数字: [0123456789]-->[0-9]
1位小写字母:[a-z]
1位字母:[a-zA-Z]
1位数字或字母: [a-zA-Z0-9]
比如:[0-9][0-9][a-zA-Z],匹配所有连续的 2数字1字母
3. 预定义字符集:针对常用的备选字符集提供的简化符号
比如:[0-9]-->d : 1位数字
[a-zA-Z0-9_]-->w : 1位字母,数字或下划线
空字符-->s : 1位空字符:换行,制表符,空格
. : 除换行外,其余所有字符!
比如:ddddws---->匹配5个数字和一空格 或 4个数字1个字母加一个空格
4. 量词:规定字符集出现的次数,默认一个量词,仅修饰左侧紧邻的字符集
4.1: 确定数量:
1.{m,n}-->至少m个,最多n个
比如:d{3,4}-->匹配最少三个数字,最多四个
2. {m,}-->m个以上
比如:d{6,}--->匹配6个以上数字
3.{m}-->必须m个
比如:d{6}----->之匹配6个数字
4.2: 不确定数量:
1. ?:可有可无,最多一个
比如: 去[去草][去草]?-->匹配所有我去、我草、我去去、我去草、我草草
2. *:可有可无 多了不限
3.+:1个以上
5. 选择和分组:
选择: | 读作"或"
分组: ( )
何时使用:希望多个字符集被同一 个两次修饰时
比如:手机号 (+86|0086)?s*1[34578]d{9}
(+86|0086)?s*1[34578]d{9}
6. 指定匹配位置:
开头和结尾:^开头的xxx;$结尾的xxx
何时使用:仅匹配开头的规则和结尾的规则时使用
固定搭配:^正则表达式$-->表示从头到尾完整匹配
何时使用指定开头与结尾:只要验证时,必须前加^,后加$!
比如:匹配字符串开头的所有空字符:^s+
匹配字符串结尾的所有空字符:s+$
同时匹配开头或结尾的空字符:^s+ |s+$
单词边界:b:一个单词必须前后有空字符分隔才匹配,在中文中不常见
比如:byoub
密码强度验证:6位密码,字母数字的组合,至少包含一位大写字母和一位数字
1. 预判字符串不全由小写字母和大写字母组成
(?![a-zA-Z]+$) -->可能有数字或特殊符号
2. 预判字符串不全由小写字母和数字组成
(?![a-z0-9]+$) -->可能有大写字母或特殊符号
3. 定义正常逻辑:
[a-zA-Z0-9]{6}
密码强度验证: ^ (?![a-zA-Z]+$)(?![a-z0-9]+$)[a-zA-Z0-9]{6}$
|