Python中使用正则表达式需要用到re库
re为Python的标准库,无需另外安装, 只需导入即可
import 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.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_] |