正则表达式

image

正则表达式

正则表达式是一门独立的语言,和其他编程语言都没有关系,只不过想在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. 量词

  1. 表达式在没有量词修饰的情况下,都是单个单个匹配。

  2. 量词必须结合 字符组、特殊符号等,一起使用,不能单独出现。

  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'

image

posted @ 2021-11-24 16:41  Joshua_jiaxue  阅读(64)  评论(0)    收藏  举报