正则表达式
来源:互联网 发布:学而知之什么意思 编辑:程序博客网 时间:2024/06/18 15:26
常用操作符:
. 表示任何单个字符
[ ] 字符集,对单个字符给出取值范围
[^ ] 非字符集,对单个字符给出排除范围
* 前一个字符0次或者无限次扩展
+ 前一个字符1次或者无限次扩展
? 前一个字符0次或者一次扩展
| 左右表达式任意一个
{m} 扩展前一个字符m次
{m,n} 扩展前一个字符m至n次(含n) eg: PY{:3}N = PN,PYN,PYYN,PYYYN
^ 匹配字符串开头 ^abc
$ 匹配字符串结尾 abc$
( ) 分组标记,内部只能使用 | 操作符
\d 数字等价于[0-9]
\w 单词字符等价于[A-Za-z0-9_]
实例:
由26个字母组成的字符串:^[A-Za-z]+$
由26个字母和数字组成的字符串 : ^[A-Za-z0-9]+$
整数形式的字符串:^-?\d+$
正整数形式的字符串:^[0-9]*[1-9][0-9]*$
中国境内邮政编码:[1-9]\d{5}
匹配中文字符:[\u4e00-\u9fa5] utf编码中中文字符的取值范围
国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
ip地址:(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])
re库的基本使用:
属于python的标准库,import re
表示方法为:r'[1-9]\d{5}'
re.search(pattern,string,flags=0)在字符串中搜索匹配正则表达式的第一个位置,返回match对象,查看方法match.group(0)
flags:
re.I(re.IGNORECASE)忽略大小写
re.M(re.MULTILINE)正则表达式中的^操作符能将给定字符串的每行当作匹配开始
re.S(re.DOTALL).能匹配所有的字符,而默认是匹配除了换行符之外的所有
re.match 是从一个字符串的开始位置起匹配正则表达式,返回一个match对象
re.findall搜索字符串,以列表类型返回全部能匹配的子串
re.split(pattern,string,maxsplit,flags) maxsplit为最大分割数
返回值为一个列表
re.finditer,返回一个匹配结果的迭代类型,每个迭代元素是match对象
eg:
match = re.finditer(r'[1-9]\d{5}','123456and098765')for m in match:print(m.group(0))
re.sub(pattern,repl,string,count,flags)在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串,repl表示替换匹配字符串的字符串,count为最大替换次数
re库的两种使用方法:
1、rst = re.search(r'[1-9\d{5}','ZZU 450001')
函数式用法,一次性操作
2、pat = re.compile(r'[1-9]\d{5}')
rst = pat.search('ZZU 450001')
面向对象用法:一次编译后多次使用
regex = re.compile(pattern,flags)将正则表达式的字符串形式编译为正则表达式对象
Match对象:
属性:
.string 待匹配的文本
.re 匹配时使用的pattern对象(正则表达式)
.pos 正则表达式搜索文本的开始位置
.endpos 正则表达式搜索文本的结束位置
方法:
.group(0)获得匹配后的字符串
.start()\end()匹配字符串在原始字符串的开始\结束位置
.span()返回(.start(),.end())
贪婪算法:
同时匹配长短不同的多项,Re库默认采用贪婪匹配,即输出匹配最长的子串
而如果想要最小匹配,则需要对以下几个操作符做出改变:
*? 前一个字符串0次或无限次扩展 ,最小匹配
+? 前一个字符串1次或无限次扩展 ,最小匹配
??前一个字符串0次或1次扩展 ,最小匹配
{m,n}?扩展前一个字符m至n次(含n),最小匹配
阅读全文
1 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- cannot be registered to your development team. Change your bundle identifier to a unique string to t
- Mvc Pager 分页
- chrome最新版本下载
- #获取系统图片遇到的坑--Cursor空指针异常
- 第 4 章 垃圾回收概念与算法
- 正则表达式
- 《C#2.0锐利体验系列课程》第一讲——泛型
- 达尔文op2官方代码解读(三)之信号处理
- 魔鬼经济学
- 图论第二次课
- 01-商城购物车练习
- 绘图和可视化
- 【数据结构】可持久化线段树&Trie总结
- 结构体初始化