python正则表达式详解(入门必备)

re

Python中使用正则表达式需要用到re库
re为Python的标准库,无需另外安装, 只需导入即可

import re

正则表达式的表示类型

  1. raw string 类型(原生字符串类型) 例如:r’[1-9]\d{5}’
  2. string 类型,更繁琐(将斜杠表示为转义字符) 例如 ‘[1-9]\d{5}’

re 库功能函数

①re.search(pattern,string ,flags=0)
函数作用:在一个字符串中匹配正则表达式的第一个位置,返回match对象
pattern:正则表达式的字符串或原生字符串
string:待匹配字符串
flags:正则表达式使用时的控制标记

标记值 说明
re.I或re.IGNORECASE 或略正则表达式的大小写,[A-Z]能够匹配小写字符
re.M或re.MULTILINE 正则表达式中的^操作符只匹配字符串的最开始部分,使用该标记能够将给定字符串的每行当作匹配开始
re.S或 re.DOTALL 正则表达式中的.操作符能够匹配除换行外的所有字符,使用该标记可以匹配所有字符

②re.match(pattern,string ,flags=0)
函数作用: 从一个字符串的开始位置起匹配正则表达式,返回match对象

③re.findall(pattern,string ,flags=0)
函数作用:搜索字符串,以列表类型返回全部匹配的子串

④ re.splite(pattern,string ,maxsplit,flags=0)
函数作用: 将一个字符串按照正则表达式匹配结果分割,返回列表类型
maxsplit:最大分割数,剩余部分作为最后一个元素输出

⑤re.finditer(pattern,string ,flags=0)
函数作用:搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象

⑥re.sub(pattern,repl,string ,count=0,flags=0)
函数作用: 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

re库的另一种等价用法

re.compile(pattern,flags=0)
pattern:正则表达式的字符串或原生字符串
lags:正则表达式使用时的控制标记

pat=re.compile(r'[1-9]\d{5}')
rst=pat.search('BIT 100081') # 这里的search可以换成上面的任何一个函数

正则表达式的常用操作符

操作符 说明 实例
. 表示任何单个字符
[ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c、[a-z]表示a到z单个 字符
[^] 非字符集,对单个字符给出排出范围 [^abc]表示非a或b或c的单个字符
* 前一个字符0此或无限次扩展 abc*表示ab,abc,abcc等
+ 前一个字符1次或无限次扩展 abc+表示abc,abcc等
前一个字符0次或1次扩展 abc?表示ab,abc
| 表示表达式中任意一个 abc|def表示abc、def
{m} 扩展前一个字符m次 ab{2}c表示abbc
{m,n } 扩展前一个字符m到n次(含n) ab{1,2}c表示abc,abbc
^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
$ 匹配字符串结尾 abc$ 表示abc且在一个字符串的结尾
() 分组标记,内部只能使用“或”操作符 (abc)表示abc,(abc|def)表示abc、def
\d 数字,等价于[0-9]
\D 等价于 [^0-9]
\s 任意一个空白字符
\S 任意一个非空白字符
\w 单词字符,等价于[A-Za-z0-9_]
\w 等价于[^A-Za-z0-9_]

常用实例

你可能感兴趣的:(python)