首页 > 编程语言 > 详细

python基础 re模块

时间:2019-12-13 00:33:58      阅读:112      评论:0      收藏:0      [点我收藏+]

re模块 正则表达式

 1 import re
 2 match = re.match("123", "123wojiushiwo我就是我") #从字符串开头进行匹配,search方法时搜索这个字符串
 3 print(match) #<_sre.SRE_Match object; span=(0, 3), match=‘123‘>
 4 print(match.group()) #123  输出匹配的子串
 5 #match search都只是匹配第一个子串就返回
 6 """
 7 常用正则表达式
 8 . 匹配除\n以外的任意一个字符,flag=re.S 也能匹配\n
 9 * 匹配前一个规则0次或者多次
10 + 匹配前一个规则一次或者多次
11 ^ 匹配开头
12 $ 匹配结尾
13 ?匹配前一个规则0次或者1次
14 {m} 匹配前一规则m次
15 {m, n} 匹配前一规则m~m次之间最长子串
16 | 匹配|左边或右边的规则,两个规则或匹配
17 
18 \A 只从开头匹配,相当于search方法
19 \Z 匹配一行结尾,等于$
20 \d 匹配0-9
21 \D 匹配非数字
22 \w 匹配数字和字母大小写
23 \W 匹配除\w之外的字符
24 s  匹配空格 \t \n \r
25 \ 转义符
26 
27 """
28 #分组匹配1
29 a = re.search("(\w){3}(123|567)", "dfec567e")
30 print(a.group()) #fec567
31 print(a.groups())#(‘c‘, ‘567‘) 将多个匹配规则最后匹配的字符以元组形式输出
32 a = re.search("(\w{3})(123|567)", "dfec567e")
33 print(a.groups()) #(‘fec‘, ‘567‘)
34 #分组匹配2
35 a = re.search("(?P<province>\d{4})(?P<city>\d{4})", "12345678")
36 print(a.groupdict()) #{‘province‘: ‘1234‘, ‘city‘: ‘5678‘} 第一个匹配到的串与province组成字典的一个元素,第二个组成另一个元素,groupdict将其字典返回
37 
38 #匹配所有
39 a = re.findall("\d", "123dfr45fg56")
40 print(a) #[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘5‘, ‘6‘] 将所有匹配的结果以列表输出
41 
42 #分隔字符串
43 a = re.split("\d+", "12efd34gth5") #以最长数字串将字符串切分为列表
44 print(a) #[‘‘, ‘efd‘, ‘gth‘, ‘‘]
45 
46 #子串替换
47 a = re.sub("\d+", ":", "12efd34gth5")
48 print(a) #:efd:gth:  将数字串替换为:,默认替换所有
49 a = re.sub("\d+", ":", "12efd34gth5", count=1)
50 print(a) #:efd34gth5 只匹配一次
51 
52 #/的处理   当处理的字符串有\时候需要在前面加上r;
53 a = re.split(r"\\", r"c:\wo\de\f")
54 print(a) #正则表达式使用r"\\"表示反斜杠,第一个\是转义符;不加r用\\\\表示反斜杠,前面两个后面两个分别在编成语言里面代表转义符和反斜杠,
55 # 转义后为两个反斜杠,在正则表达式里面第一个反斜杠是转义符第二个才是真正用到的反斜杠
56 
57 #扩展匹配
58 a = re.split("a", "1ab2A1B2", flags=re.I) #忽略匹配规则的大小写
59 print(a) #[‘1‘, ‘b2‘, ‘1B2‘]

 

python基础 re模块

原文:https://www.cnblogs.com/flags-blog/p/12032630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!