文章目录
-
- 一、正则表达式
- 二、re模块
-
-
- 1、re模块的使用
-
-
- 1.1、findall(pattern,string,flags = 0 )用法
- 1.2、re.match(pattern,string,flags = 0 )用法
- 1.3、re.search(pattern,string,flags = 0 )用法
- 1.4、re.finditer(pattern, string, flags=0)用法
- 1.5、re.sub(pattern,repl,string,count = 0,flags = 0 )的用法
- 1.6、re.split(pattern,string,maxsplit = 0,flags = 0 )的用法
- 1.7、re.escape(pattern)方法
- 1.8、re.compile(pattern,flags = 0)方法
-
- 2、re模块的属性
-
一、正则表达式
1、概念
正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。
在python中,其典型应用场景有:
- 数据验证
- 数据替换
- 文本扫描
- 文本提取
- 文本分割
2、常用正则表(元字符)
3、代码示例
'''
re模块基础
Version:01
author:jasn
data:2020-02-21
常用匹配模式(元字符)
http://blog.csdn.net/yufenghyc/article/details/51078107
'''
import re
#
# ==========================================================================================================================================
# 效果演示
str1 = 'In 2020, I must learn Python! & @'
# \w:匹配数字字母及下划线
print(re.findall('\w',str1))
# 结果:['I', 'n', '2', '0', '2', '0', 'I', 'm', 'u', 's', 't', 'l', 'e', 'a', 'r', 'n', 'P', 'y', 't', 'h', 'o', 'n']
# \W:匹配非字母数字及下划线
print(re.findall('\W', str1))
# 结果 :[' ', ',', ' ', ' ', ' ', ' ', '!', ' ', '&', ' ', '@']
# \s匹配任意空白符
print(re.findall('\s',str1))
# 结果:[' ', ' ', ' ', ' ', ' ', ' ', ' ']
# \S 匹配任意非空字符
print(re.findall('\S', str1))
# 结果:['I', 'n', '2', '0', '2', '0', ',', 'I', 'm', 'u', 's', 't', 'l', 'e', 'a', 'r', 'n', 'P', 'y', 't', 'h', 'o', 'n', '!', '&', '@']
# \d 匹配任意数字,等价于[0-9]
print(re.findall('\d', str1))
print(re.findall('[0-9]', str1)) # 结果相同
# 结果:['2', '0', '2', '0']
# 、\D 匹配任意非数字
print(re.findall('\D', str1))
# 结果 :['I', 'n', ' ', ',', ' ', 'I', ' ', 'm', 'u', 's', 't', ' ', 'l', 'e', 'a', 'r', 'n', ' ', 'P', 'y', 't', 'h', 'o', 'n', '!', ' ', '&', ' ', '@']
# A 匹配字符串的开始 ;\Z匹配字符串的结束,有返回匹配的值,无返回空
print(re.findall('\AIn', str1)) # ['In'],\A==>^
print(re.findall('@\Z', str1)) # ['@'],\Z==>$
# ^ 匹配字符串的开头;$匹配字符串的结束
print(re.findall('^I', str1)) # ['I']
print(re.findall('@$', str1)) # ['@']
# ===========================================================================================================================================
# 重复匹配:| . | * | ? | .* | .*? | + | {n,m} |
# ========================================================