首页 > 代码库 > 10、正则表达式

10、正则表达式

元字符

正则表达式语法:

1、[...]:用来表示一组字符,单独列出:[amk] 匹配'a','m'或'k'
--常用来指定一个字符集,字符集中的一个或多个都能被匹配:[abc];[a-z];[0-9];[A-Z].也可以写成[a-z0-9A-Z]
--元字符在字符集中不起作用:[abc$]
--补集匹配不在区间范围内的字符[^5]



2、^:匹配行首,符号放在字符串前面如:h=r'^hello 'r表示原意
--只匹配字符串的开始。但在MULTILINE模式里,也可以直接匹配字符串中的每个换行



3、$:匹配行尾,符号放在字符串后面如:o=r'boy$'


4、\:取消元字符变成普通字符串,
--反斜杠后面可以加不同的字符以表示不同的特殊意义:
\d--匹配任何十进制数;相当于[0-9]
\D--匹配任何非数字字符;相当于[^0-9]
\s--匹配任何空白字符;相当于[\t\n\r\f\v]
\S--匹配任何非空白字符;相当于[^\t\n\r\f\v]
\w--匹配任何字符数字字符;相当于[a-zA-Z0-9]
\W--匹配任何非字母数字字符;相当于[^a-zA-Z0-9]



5、{}:
1》{n}精确匹配n个前面表达式


2》{n,m}:匹配 n 到 m次由前面的正则表达式定义的片段,贪婪方式



6、re*:匹配*号前面表达式0到多次,0次即没有,最多支持20亿次


7、re+:匹配1个或多个的表达式。跟上面的*不同的是,他最少要求有1次。


8、re?:匹配0个或1个由前面的正则表达式定义的片段,可以认为是表示某事物是可选的,
贪婪方式:

非贪婪模式:



9、compile(编译):当一个正则需要被多次使用的时候,可以使用complie方法将正则编译赋给一个变量。
语法:re.compile(正则,修饰符)*正则可以是已赋值的变量名,也可以直接是正则内容譬如:r'hello'。修饰符在下面逐一呈现


10、re.I:大小写均可匹配。(修饰符)



11、re.match:尝试从字符串的开始匹配一个模式,匹配成功re.match方法返回一个匹配的对象matchobject,否则返回None。一般做是否能匹配的判断式
1》match用法:

2》使用match作为判断条件,执行语句块:

12、re.search:将字符串的所有字串尝试与正则表达式匹配,匹配成功返回对象matchobject,失败返回None。与match不同的是match只匹配开始,而search匹配所有。


13、re.findall:找到 RE匹配的所有子串,并把它们作为一个列表返回。这个匹配是从左到右有序地返回。如果无匹配,返回空列表


14、re.sub:用于替换字符串中的匹配项。re.subn:返回替换的数据和替换的次数



15、.:匹配任意字符,除了换行符,


16、re.S:使 .匹配包括换行在内的所有字符


17、re.M:多行匹配,影响 ^ 和 $ M:MULTILINE


18、re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。










来自为知笔记(Wiz)


10、正则表达式