Python 正则表达式
============
文章目录
- Python 正则表达式
- 特殊字符[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qmIiiqcY-1650024055197)(C:\Users\FM\Pictures\Saved Pictures\3-2 正则表达式-1 (1831)]_Moment.jpg)
- re.match函数
- 函数语法:
- re.match(pattern, string, flags=0)
- group(num=0)
- groups()
- re.search方法
- re.search 扫描整个字符串并返回第一个成功的匹配。
- re.search(pattern, string, flags=0)
- ==re.match与re.search的区别
- Python 的 re 模块提供了re.sub用于替换字符串中的匹配项。
- re.sub(pattern, repl, string, count=0, flags=0)
- findall
- 注意: match 和 search 是匹配一次 findall 匹配所有。
- findall(string[, pos[, endpos]])
- -- coding:UTF8 -- import re pattern = re.compile(r'\d+') # 查找数字 result1 = pattern.findall('runoob 123 google 456') result2 = pattern.findall('run88oob123google456', 0, 10) print(result1) print(result2)
- -- coding: UTF-8 -- import re it = re.finditer(r"\d+","12a32bc43jf3") for match in it: print (match.group() )
- split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:
- re.split(pattern, string[, maxsplit=0, flags=0])
本文主要表格
re.M 多行匹配,影响 ^ 和 $
正则表达式
特殊字符[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qmIiiqcY-1650024055197)(C:\Users\FM\Pictures\Saved Pictures\3-2 正则表达式-1 (1831)]_Moment.jpg)
^$* ?+{2} {2,}{2,5},|
字符头^,尾$,+表示最少出现一次,?非贪婪模式,{2,5}出现最少2次最多5次,|字符表示或者
o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。“o{1,}” 等价于 “o+”。“o{0,}” 则等价于 “o*”。
[a-z],[],[^]
[789]表示789中间任意一个字符,中间可以用-,[a-zA-Z]
\s \S \w \W
\s是空格\S就是非空格,\w等价于[a-zA-Z0-9_],最后一个是下划线,大W相反
[\u4E00-\u9FA5] ,(), \d,\D
汉字字符,()表示匹配后记住的,如果()中还有()则表示优先运算,如下图,匹配任意数字,\d等价于 [0-9],
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hS2Uljwn-1650024055199)(C:\Users\FM\Pictures\Saved Pictures\3-4 正则表达式-3 (2016)]_Moment.jpg)
import re
line ='11北京大学'
r ='.*?([\u4e00-\u9fa5]*大学).*'
jg = re.match(r,line)
print(jg.group(1))
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配 |
re.M | 多行匹配,影响 ^ 和 $ |
re.S | 使 . 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解 |
# | |
# | |
pattern | 匹配的正则表达式 |
--------- | -------------------------------------------------------- |
string | 要匹配的字符串。 |
flags | 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志 |
re? 匹配从前向后匹配就可以,非贪婪方式。没有就贪婪匹配到最后。
模式 | 描述 |
---|---|
^ | 匹配字符串的开头 |
$ | 匹配字符串的末尾。 |
. | 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 |
[…] | 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,‘m’或’k’ |
[^…] | 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。 |
re* | 匹配0个或多个的表达式。 |
re+ | 匹配1个或多个的表达式。 |