正则表达式

正则表达式
正则表达式是一门独立的语言,和其他编程语言都没有关系,只不过想在python中用的话,需要python提供的内置模块re。
1. 字符组
在同一个位置可能出现的各种字符,组成了一个字符组,字符组在没有量词的情况下,一次只匹配一个。
# 特征是用中括号括起来[]
[0123456789] # 匹配0-9任意数字,默认只能单个单个匹配。
简写为:[0-9]
同理有:[a-z][A-Z]
还有:[0-9a-zA-Z] # 表示匹配所有数字英文字母包括大小写。
2. 特殊符号
一样默认也只能单个单个字符匹配
"""
# . 匹配除换行符以外的任意字符
"""
# \w 匹配字母或数字或下划线
# \s 匹配任意的空白符
"""
# \d 匹配数字
"""
# \n 匹配一个换行符
# \t 匹配一个制表符
# \b 匹配一个单词的结尾
"""
# ^ 匹配字符串的开始(以...开头)
# $ 匹配字符串的结尾(以...结尾)
"""
# \W 匹配非字母或数字或下划线
# \D 匹配非数字
# \S 匹配非空白符
"""
# a|b 匹配字符 a 或 b
# () 匹配括号内的表达式,也表示一个组,分组
# [...] 匹配字符组中的字符
# [^...] 匹配除了字符组中字符的所有字符(取反)
不影响正则匹配
"""
3. 量词
-
表达式在没有量词修饰的情况下,都是单个单个匹配。
-
量词必须结合 字符组、特殊符号等,一起使用,不能单独出现。
-
量词只能影响前面的一个表达式 ab+ ,只能影响b
# * 重复0次或更多次
# + 重复一次或更多次
# ? 重复0次或1次
# {n} 重复n次
# {n,} 重复n次或更多次
# {n,m} 重复n到m次
4. 贪婪匹配与非贪婪匹配
# 待匹配的字符串
<script>123</script>
# 正则表达式
<.*>
# 结果 <script>123</script>
"""默认贪婪匹配,尽可能多的匹配,结束条件由最后决定。"""
# 将贪婪变为非贪婪只需要在量词后面加问号❓即可
<.*?>
# 结果: 匹配到两个
# <script>
# </script>
"""非贪婪匹配,尽可能少的匹配,结束条件由左右两边决定。"""
5.取消转义
在原生正则表达式中,用\来取消转义
每个\只能取消一个字符的转义
\\n \n
\\\\n \\n
在python中 还 可以用r来转义
r'\n'

浙公网安备 33010602011771号