正则表达式基础1

 1 1.指定 eval()调用一个代码对象会提高性能
 2 2.在进行模式匹配之前,正则表达式的模式必须编译为正则表达式对象
 3     匹配时需要进行多次匹配,进行预编译可以提升速度
 4     re.compile(pattern,flags = 0)
 5 3.消除缓存
 6     re.purge()
 7 4.使用 re.S 后 . 可以匹配换行符 \n
 8 5.使用了match() 和 search() 方法之后返回的对象称为匹配对象
 9     匹配对象常用 group() 和 groups() 方法
10     group() 返回整个匹配对象 或 特定子组
11     groups() 返回一个包含唯一 或 全部子组的元组
12 6.match() 方法 对字符串的起始部分进行模式匹配
13     成功:返回一个匹配对象
14     失败:返回 None
15 7.search() 方法 对字符串任意位置进行模式匹配
16     成功:返回匹配对象
17     失败:返回 None
18 8.可以使用 pos , endpos 参数指定目标字符串的搜索范围
19 9.使用 . 匹配任何单个字符
20     .end 不能匹配 end 
21     不能匹配 \n 换行符
22     使用 \. 匹配 . 
23 10.创建字符集 [ ]
24     [cr][23] 表示 匹配第一个字符 c 或者 r 
25                      第二个字符 2 或者 3
26 
27 
28 程序:
29 import re 
30 # match(pattern,string,flags = 0) 匹配示例
31 m = re.match('foo','foo')
32 if m is not None:
33     # 如果匹配成功则输出匹配内容
34     print(m.group())
35     # print(m.groups()) 返回空元组 因为没有子组
36     # foo
37     # 匹配对象具有 group() 和 groups() 方法
38     print(m)
39     # <re.Match object; span=(0, 3), match='foo'>
40 
41 # search(pattern,string,flags = 0) 匹配示例
42 m = re.search('foo','sea food')
43 if m is not None:
44     print(m.group())
45     # foo
46     print(m)
47     # <re.Match object; span=(4, 7), match='foo'>
48     # 返回第四个元素的位置
49 
50 # | 或 示例
51 bt = 'bat|bet'
52 m = re.match(bt,'bat')
53 # match 只匹配开头
54 m2 = re.search(bt,'abat')
55 # search 从开始到结尾
56 print(m.group())
57 # bat
58 print(m2.group())
59 # bat
60 
61 # . 匹配任意字符示例
62 anyend = '.end'
63 m = re.match(anyend,'aend')
64 print(m.group())
65 # aend
66 m2 = re.search(anyend,'abcdend')
67 print(m2.group())
68 # dend
69 
70 pi_pattern = '3.14'
71 m = re.match(pi_pattern,'3.14')
72 print(m.group())
73 # 3.14
74 pi_pattern = '3\.14'
75 # 将 . 转义
76 m = re.match(pi_pattern,'3.14')
77 print(m.group())
78 # 3.14
79 
80 #  [ ]  创建字符集 
81 m = re.match('[cr][23][dp][po]','c3po')
82 print(m.group())
83 # c3po
84 
85 m = re.match('[cr][23][dp][po]','c2do')
86 print(m.group())
87 # c2do

2020-04-11

posted @ 2020-04-11 20:27  CodeYaSuo  阅读(156)  评论(0编辑  收藏  举报