正则表达式一、概述1. 概念正则表达式是对字符串操作的一种逻辑公式 , 就是用事先定义好的一些特定字符、及这些特定字符的组合 , 组成一个“规则字符串” , 这个“规则字符串”用来表达对字符串的一种过滤逻辑 。
2. 目的给定一个正则表达式和另一个字符串 , 我们可以达到如下的目的:
- a. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
- 例如:邮箱匹配 , 电话号码匹配
- b. 可以通过正则表达式 , 从字符串中获取我们想要的特定部分 。
- 爬虫中解析 html 数据
- 3. 特点:
- a. 灵活性、逻辑性和功能性非常的强;
- b. 可以迅速地用极简单的方式达到字符串的复杂控制 。
- c. 对于刚接触的人来说 , 比较晦涩难懂 。
- 4. 学习方法
- a. 做好笔记 , 不要死记硬背
- b. 大量练习
二、正则表达式符号1. 普通字符下面的案例使用
re
模块的 findall()
函数 , 函数参考如下:re.findall(pattern, string, flag)
- 在字符串中找到正则表达式所匹配的所有子串 , 并返回列表 , 如果没有找到返回空列表
pattern
: 正则表达式
string
:被匹配的字符串
flag
:标志位用来控制正则表达式匹配方式
import re
s1 = "testing123"
s2 = "Testing123"
r = re.findall("test", s1)# 表示在s1中找到字符串"test"
print(r)
运行结果:['test']
r = re.findall("test", s2)
print(r)
运行结果:[]
r = re.findall("test", s2, re.I) # 修饰符re.I:使匹配对大小写不敏感
print(r)
运行结果:['Test']
2. 元字符. ^ $ * + ? { } [ ] | ( )
符号功能 .通配符 .
匹配除 n
之外的任何单个字符^脱字符 ^
匹配输入字符串的开始位置$美元符 $
匹配输入字符串的结束位置*重复元字符 *
匹配前面的子表达式任意次+重复元字符 +
匹配前面的子表达式一次或多次(至少一次)?重复元字符 ?
匹配前面的子表达式 0 次或 1 次{}重复元字符{}
也是控制匹配前面的子表达式次数[ ]字符组 []
表示匹配给出的任意字符|选择元字符 `( )分组元字符 ()
将括号之间的表达式定义为组(group) , 并且将匹配这个子表达式的字符返回转义元字符
用来匹配元字符本身时的转义 , 和特定字符组成字符串 , 见预定义字符组 2.1 通配符 .
匹配除 n 之外的任何单个字符s1 = "testing123"
s2 = "testing123n"
r = re.findall(".", s1)
print(r)
运行结果:
['t', 'e', 's', 't', 'i', 'n', 'g', '1', '2', '3']
r = re.findall(".", s2)# 除“n”
print(r)
运行结果:['t', 'e', 's', 't', 'i', 'n', 'g', '1', '2', '3']
修饰符 re.S 使 .
匹配包括换行在内的所有字符r = re.findall(".", s2, re.S)
print(r)
运行结果:['t', 'e', 's', 't', 'i', 'n', 'g', '1', '2', '3', 'n']
2.2 脱字符 ^匹配输入字符串的开始位置s1 = "testingnTestingntest"
r = re.findall("^test", s1)# 默认只匹配单行
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 必吃!五大降脂明星食品
- 企业最需要什么样的Python工程师?了解一下!
- 比C语言还快20%!Mojo首个大模型开放下载,性能达Python版250倍
- OpenTelemetry入门看这一篇就够了
- 超越NumPy和Pandas:三个鲜为人知的Python库
- 五步让你掌握Python数据结构
- 挑战用 500 行 Python 写一个 C 编译器
- 带T的车开之前是否需要热车?一篇文章告诉你!
- 一篇文章告诉你,CG原画是什么?
- 2023年编程语言榜单,Python继续领跑!SQL在工作需求中夺魁