python正则表达式

简介: 正则表达式

元字符匹配,对于爬虫十分重要


字符 功能
. 匹配任意一个字符(除了 \n ), \. 匹配点本身
[ ] 匹配 [ ] 中列举的字符
\d 匹配数字,即 0-9
\D 匹配非数字
\s 匹配空白,即 空格、tab键
\S 匹配非空白
\w 匹配单词字符,即 a-z、A-Z、0-9、_
\W 匹配非单词字符

r的用法

字符串前面带上r,表示其中转义字符无效,均视为普通字符

三大方法

import re包
re.match, 从头开始匹配,匹配第一个命中项,如果第一个匹配失败,直接结束
re.search,全局匹配,匹配第一个命中项
re.findall,全局匹配,匹配全部命中项,返回一个 list

数量匹配

==*== 匹配前一个规则的字符出现0至无数次,闭包
+ 匹配前一个规则的字符出现1至无数次, 正闭包
匹配钱一个规则的字符出现0次或者1次
{m} 匹配前一个规则的字符串出现m次
{m,} 匹配前一个规则的字符串出现最少m次
{m,n} 匹配前一个规则的字符串出现m到n次

边界匹配

^ 匹配字符串开头
$ 匹配字符串结尾
\b 匹配一个单词的边界
\B 匹配非单词的边界

分组匹配

**\ ** 匹配左右任意一个表达式 或
( ) 将括号中字符作为一个分组

案列演示

"""
正则表达式元字符匹配
"""

import re

# 匹配账号,只能由数字和字母组成,长度限制6到10位,正则表达式里面不要乱写空格
r1 = '^[0-9a-zA-Z]{6,10}$'
s1 = '123458Ab'
print(re.findall(r1, s1))

# 匹配QQ号,纯数字,长度5-11,第一位不为0
r2 = '^[1-9][0-9]{4,10}$'
s2 = '01246789'
print(re.findall(r2, s2))

# 匹配邮箱地址,允许 qq、163、gmail
r3 = r'(^[\w-]+(\.[\w-]+)*@(qq|163|gmail)(\.[\w-]+)+$)'
s3 = 'a.b.c.d.f.g@163.com.za.as'
print(re.match(r3, s3))

输出结果自己在IDE跑一下,很简单。

目录
相关文章
|
1天前
|
Python
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r'string'`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
15 3
|
1天前
|
Python Windows
【Python进阶必备】一文掌握re库:实战正则表达式
【Python进阶必备】一文掌握re库:实战正则表达式
14 0
|
1天前
|
Python
python正则表达式小结
1. **其他函数:**  `re`模块还提供了其他一些函数,例如 `re.search()`查找字符串中第一个匹配的部分,`re.findall()`查找所有匹配的部分,`re.sub()`替换匹配的部分。
5 0
|
1天前
|
Python
使用Python解析网页和正则表达式
使用Python解析网页涉及`requests`和`re`模块。首先导入这两个模块,然后用`requests.get()`发送HTTP请求获取URL内容。通过`.text`属性得到HTML文本。接着,利用正则表达式和`re.search()`匹配特定模式(如网页标题),并用`.group(1)`获取匹配数据。最后,对提取的信息进行处理,如打印标题。实际操作时,需根据需求调整正则表达式。
17 2
|
1天前
|
缓存 运维 前端开发
第十六章 Python正则表达式
第十六章 Python正则表达式
|
1天前
|
Python
Python正则表达式Regular Expression初探
Python正则表达式Regular Expression初探
28 0
|
1天前
|
数据安全/隐私保护 Python
Python正则表达式:强大的文本处理工具
Python正则表达式:强大的文本处理工具
12 1
|
1天前
|
Python
Python中的正则表达式以及如何使用它们进行文本处理
正则表达式(Regex)是处理字符串的利器,Python通过`re`模块支持Regex操作,包括匹配模式(`re.match()`),查找模式(`re.search()`),替换内容(`re.sub()`),分割内容(`re.split()`),分组提取(使用括号)以及利用特殊字符创建复杂模式。学习和熟练掌握正则表达式能有效提升文本处理效率。
10 1
|
1天前
|
Python
请解释Python中的正则表达式以及如何使用它们进行文本处理。
正则表达式(Regex)是处理字符串的工具,Python通过`re`模块支持Regex操作,如匹配、查找、替换和分割文本。`re.match()`检查字符串是否以指定模式开始,`re.search()`查找模式,`re.sub()`替换匹配内容,`re.split()`按模式分割字符串。使用括号进行分组提取,特殊字符如`.`、`*`、`+`、`?`、`^`和`$`可创建复杂模式。熟练掌握正则表达式需学习和实践。
12 0
|
1天前
|
Python
Python正则表达式:面试中的难点与解题思路
【4月更文挑战第15天】本文聚焦Python正则表达式在面试中的难点,包括匹配模式与分组、重复匹配与量词、零宽断言与环视。通过实例解析常见面试题,如提取电子邮件域名、匹配连续重复单词和HTML标签间文本,强调了正则表达式的灵活性和易错点。学习正则表达式的基本语法、量词及高级特性,能帮助你在面试中应对文本处理问题。
21 1