Python-正则表达式
来源:互联网 发布:java inputstream 编辑:程序博客网 时间:2024/06/09 20:58
python 中通过正则表达式对字符串进行匹配的时候,需要用到re模块
import re
- 标准写法:r要写,代表对整个字符串进行转义
- re.功能(r”正则表达式”,”需要匹配的字符串”或字符串的引用,标志位(可以不写))
- re.功能(pattern, string, flags) # flags代表标志位,用于控制pattern是否区分大小写,多行匹配等。
r 表示对正则表达式进行转义(避免正则表达式中\使用时混淆)^ 仅匹配整个字符串开头$ 仅匹配整个字符串末尾\b 匹配一个单词结束边界,例如”er\b”匹配”never”中的er\B 匹配非单词结束边界,例如”er\B”匹配”verb”中的er[^X] 匹配非X,^相当于取反,正则默认贪婪,非贪婪加?
匹配分组:
| 匹配左右任意一个表达式(ab) 将括号内的ab作为一个整体\num 引用第num个分组(?P<name>) 分组起名(?p=name) 引用别名name的分组
通配符
. 除”\n”,任意一个字符[] 中括号内任意一个字符\d 数字\D 非数字\s 空白字符,包括空格,Tab键\S 非空白字符\w 字母、数字、_\W 非字母、数字、_
匹配前一个字符多少次:
* 匹配>=0次+ 匹配>=1次? 匹配0或1次{m} 匹配m次{m,n} 匹配m到n次
标志位:
re.I 使匹配对大小写不敏感re.S 使.可以匹配\nre.M 多行匹配,影响^和$多个标志位可以写re.S|re.I
RegexObjdct实例的方法和属性
group() 返回匹配的字符串start() 返回匹配开始的下标end() 返回匹配结束的下标span() 返回一个元祖,是匹配(开始,结束)的下标
1 match 完全匹配
默认从字符串开头开始匹配re.match(r”正则表达式”, “字符串”) # 如果匹配成功,返回的是一个对象;匹配不成功,返回Nonere.match(r”正则表达式”, “字符串”).group() # 调用group()方法,返回匹配到的内容
2 search 搜索第一个
对整个字符串进行匹配,找到第一个匹配到的内容,将这部分作为对象返回re.search(r”正则表达式”, “字符串”) # 返回一个对象re.search(r”正则表达式”, “字符串”).group() # 调用group()方法,返回匹配到的内容re.search(r”正则表达式”, “字符串”).start() # 返回匹配到内容的起始位置下标
3 findall 查找所有
对整个字符串进行匹配,找到所有匹配到的内容,将这些内容以列表方式返回re.findall(r”正则表达式”, “字符串”) # 返回一个列表
4 sub 替换
对整个字符串进行匹配,找到所有匹配到的内容,将其替换,并返回替换后的字符串re.sub(r”正则表达式”, “替换内容”, “字符串”,)替换内容可以是一个函数,函数的返回值即是字符串中要替换的元素;这个函数必须将正则匹配后的对象作为参数传入,若要在匹配到的内容上进行修改,则需要调用group()方法获取匹配内容,如果直接修改,则不需要。
5 split 切片
对整个字符串进行匹配,找到所有匹配到的内容,在匹配到的内容左右进行切片,返回一个列表。re.split(r”正则表达式”, “字符串”) # 返回一个列表
6 compile 封装
将正则表达式进行封装,可以循环使用,减少工作量option = re.compile(r”正则表达式”)调用方法:例如:option.match(“字符串”)In [66]: option = re.compile(r"\d")In [67]: option.findall("a1b2c3")Out[67]: ['1', '2', '3']
7 finditer
是findall的惰性版本,返回的不是列表,是一个生成器,按需生成re.MatchObject实例,如果有很多匹配的话,re.finditer函数能节省大量内存。
In [61]: a = "aaa1aa2aa3aa4aa5aa6"In [62]: b = re.finditer("\d",a)In [63]: next(b)Out[63]: <_sre.SRE_Match object; span=(3, 4), match='1'>In [64]: next(b).group()Out[64]: '2'
阅读全文
0 0
- python正则表达式学习
- c++正则表达式,python
- Python正则表达式(一)
- python的正则表达式
- Python正则表达式
- Python初学-正则表达式
- 正则表达式与python
- python正则表达式学习
- python正则表达式学习
- python正则表达式学习
- python正则表达式
- Python - 正则表达式
- Python正则表达式
- python正则表达式
- Python正则表达式指南
- Python正则表达式指南
- Python 正则表达式指南
- python 正则表达式
- Tomcat端口号的配置
- 今日头条笔试8/23第二题
- Redis和消息队列使用实战
- Java基础(四)组合数据类型
- Android最常用而又最难用控件—ListView(三)。
- Python-正则表达式
- Queries Gym
- SpringMVC基础配置
- MySQL数据库、Navicat for MySQL、Workbench的安装
- 刷CCF的算法题(第七天)
- 二叉树(java)
- java-正则、object中的两个方法的使用
- 今日头条8/23第一道编程题
- 物联网核心之MQTT(一)