unicode码和ascii码区别全⾯掌握Python中正则表达式的使⽤
⽂章⽬录
re模块主要定义了9个常量、12个函数、1个异常,每个常量和函数都会通过实际代码案例讲解,让⼤家能更直观的了解其作⽤!注:为避免出现代码格式错乱,尽量使⽤代码截图演⽰哦。
⼀、re模块简介
因为re是内置模块,所以不需要再下载,使⽤时直接引⼊即可:
import re
⼆、re模块常量
常量即表⽰不可更改的变量,⼀般⽤于做标记。
re模块中有9个常量,常量的值都是int类型!
上图我们可以看到,所有的常量都是在RegexFlag枚举类来实现,这是在Python 3.6做的改版。在Python 3.6以前版本是直接将常量写在re.py中,使⽤枚举的好处就是⽅便管理和使⽤!
下⾯我们来快速学习这些常量的作⽤及如何使⽤他们,按常⽤度排序!
1. IGNORECASE
语法: re.IGNORECASE 或简写为 re.I
作⽤: 进⾏忽略⼤⼩写匹配。
代码案例:
在默认匹配模式下⼤写字母B⽆法匹配⼩写字母b,⽽在 忽略⼤⼩写 模式下是可以的。
2. ASCII
语法: re.ASCII 或简写为 re.A
作⽤: 顾名思义,ASCII表⽰ASCII码的意思,让 \w, \W, \b, \B, \d, \D, \s 和 \S 只匹配ASCII,⽽不是Unicode。代码案例:
在默认匹配模式下\w+匹配到了所有字符串,⽽在ASCII模式下,只匹配到了a、b、c(ASCII编码⽀持的字符)。
注意:这只对字符串匹配模式有效,对字节匹配模式⽆效。
3. DOTALL
作⽤: DOT表⽰.,ALL表⽰所有,连起来就是.匹配所有,包括换⾏符\n。默认模式下.是不能匹配⾏符\n的。
代码案例:
在默认匹配模式下.并没有匹配换⾏符\n,⽽是将字符串分开匹配;⽽在re.DOTALL模式下,换⾏符\n与字符串⼀起被匹配到。
注意:默认匹配模式下.并不会匹配换⾏符\n。
4. MULTILINE
语法: re.MULTILINE 或简写为 re.M
作⽤:多⾏模式,当某字符串中有换⾏符\n,默认模式下是不⽀持换⾏符特性的,⽐如:⾏开头 和 ⾏结尾,⽽多⾏模式下是⽀持匹配⾏开头的。
代码案例:
正则表达式中^表⽰匹配⾏的开头,默认模式下它只能匹配字符串的开头;⽽在多⾏模式下,它还可以匹配 换⾏符\n后⾯的字符。
注意:正则语法中^匹配⾏开头、\A匹配字符串开头,单⾏模式下它两效果⼀致,多⾏模式下\A不能识别\n。
5. VERBOSE
作⽤:详细模式,可以在正则表达式中加注解!
代码案例:
默认模式下并不能识别正则表达式中的注释,⽽详细模式是可以识别的。
当⼀个正则表达式⼗分复杂的时候,详细模式或许能为你提供另⼀种注释⽅式,但它不应该成为炫技的⼿段,建议谨慎考虑后使⽤!
6.LOCALE
语法: re.LOCALE 或简写为 re.L
作⽤: 由当前语⾔区域决定 \w, \W, \b, \B 和⼤⼩写敏感匹配,这个标记只能对byte样式有效。这个标记官⽅已经不推荐使⽤,因为语⾔区域机制很不可靠,它⼀次只能处理⼀个 “习惯”,⽽且只对8位字节有效。
注意: 由于这个标记官⽅已经不推荐使⽤,⽽且也没使⽤过,所以就不给出实际的案例!
7.UNICODE
语法: re.UNICODE 或简写为 re.U
作⽤: 与 ASCII 模式类似,匹配unicode编码⽀持的字符,但是 Python 3 默认字符串已经是Unicode,所以有点冗余。
8. DEBUG
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论