正则笔记
来源:互联网 发布:微信广告软件 编辑:程序博客网 时间:2024/05/21 10:45
正则表达式 regular expression:
什么是: 规定一类字符串字符出现规律的一套规则
何时: 2种:
1. 验证字符串格式
2. 使用规则模糊查找多种关键词
如何:
1. 最简单的正则表达式,就是关键词本身
2. 字符集:
什么是: 规定一位字符备选字符列表的集合
何时: 只要一位字符上有多种备选字时
如何:[备选字符列表]
强调: 1. []不能随便加逗号和空格
2. 一个[]字符集只能限定一位字符的备选范围
简写: 当备选字符中部分字符是连续的,可用-省略中间字符:
比如: 一位数字[0-9]
一位小写字母[a-z]
一位大写字母[A-Z]
一位字母[A-Za-z]
一位汉字[\u4e00-\u9fa5]
反选: 选择除了xxx都行: [^xxx]
3. 预定义字符集:
什么是: 对常用字符集的最简化写法
包括: 4个:
\d 一位数字, 代替[0-9]
\w 一位字母,数字或_,代替[A-Za-z0-9_]
\s 一位空字符: 空格,Tab,… …
. 一位任意字符——通配符
强调: 必须规则和预定义字符集的规则完全匹配时,才能使用预定义字符集。
问题: 字符集只能规定一位字符的备选内容
无法灵活规定出现次数
解决: 量词:
4. 量词: 灵活定义一位字符集出现次数的规则
何时: 只要规定字符集出现次数
如何: 2大类:
1. 有明确数量边界的:3个
字符集{m,n} 至少m次,最多n次
字符集{m,} 至少m次,多了不限
字符集{m} 必须m次
2. 没有明确数量边界:3个
字符集? 可有可无,最多一次
字符集* 可有可无,多了不限
字符集+ 至少一次,多了不限
强调: 默认一个量词仅修饰相邻的前一个字符集
5. 选择和分组:
分组: 将多个子规则用()包裹为一组
为什么: 默认一个量词只能修饰一个字符集
何时: 只要希望一个量词同时修饰多个字符集时
选择: “规则1|规则2” |读作或
类似于程序中的或者
只要匹配任意一个规则即可
身份证: 1,2,3代
15位数字 2位数字 最后一个可能是数字或Xx
后三位整体可有可无,最多1次
\d{15} (\d{2} [0-9Xx])?
手机号:
+86或0086 整体可有可无,最多一次
(\+86|0086)?
空字符 可有可无,多了不限
\s*
1
3,4,5,7,8中挑一个
[34578]
9位数字
\d{9}
(\+86|0086)? \s*1[34578] \d{9}
微 信, wei xin, w x, wechat
(微|w(ei)?)\s*(信|x(in)?)
6. 指定匹配位置: 3个位置
^开始位置,第一个字符之前
$结束位置,最后一个字符之后
何时: 只要仅匹配特定位置的值时
比如: 匹配空字符:
^\s+ 字符串开头的空字符
\s+$ 字符串结尾的空字符
^\s+|\s+$匹配开头或结尾的空字符
\b 专指单词边界: ^ $空格 标点符号
专门选择一个单词之用
- 正则笔记
- 正则笔记
- 正则笔记
- 正则 笔记
- 正则笔记
- 正则笔记
- 正则笔记
- 正则笔记
- 正则笔记
- 正则笔记
- 正则-笔记
- 正则笔记
- 正则笔记
- 正则笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 正则表达式学习笔记
- 架构师能力
- 设计模式---代理模式
- spring mvc高级篇(六):Spring+SpringMVC+Hibernate整合(采用泛型+注解优化)
- java面试题整理
- windows下吐血安装Numpy、Scipy、matplotlib模块
- 正则笔记
- 02-Wifi通讯架构介绍
- OOP 笔记
- spring mvc高级篇(七):Spring+SpringMVC+Mybatis整合(采用泛型优化)
- 一些关于event的 记录
- GET与POST区别
- HTML:Getting Intimate with Elements
- 两张图看懂Android开发中MVC与MVP的区别
- Maven+SSM框架下项目开发常见异常及解决方案(三)