Python从0到100(三十九):数据提取之正则
【摘要】 前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!欢迎大家订阅专栏:零基础学Python:Python从0...
前言:
零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!
欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程!
1 什么是正则表达式
正则表达式是一种文本模式,包括普通字符(例如,字母和数字)以及特殊字符(称为“元字符”)。这些元字符没有文字意义,它们用来定义搜索模式,这个模式可以用来检查一个字符串是否符合我们定义的规则,或者从一个文本中提取出符合规则的子串。
2 正则表达式的常见语法
知识点
- 正则中的字符:普通字符和特殊字符。
- 正则中的预定义字符集:如
\d
匹配任何十进制数字,\w
匹配任何字母数字字符等。 - 正则中的数量词:如
*
(零次或多次),+
(一次或多次),?
(零次或一次)等。
语法示例
.
:匹配任意单个字符(除了换行符)。^
:匹配输入字符串的开始位置。$
:匹配输入字符串的结束位置。[]
:匹配方括号内的任意字符(例如,[abc]
匹配"a"、“b"或"c”)。|
:逻辑或操作符(例如,cat|dog
匹配"cat"或"dog")。()
:将多个表达式组合成一个子表达式,也可以用于捕获匹配的子字符串。
3 re模块的常见方法
方法列表
re.match
:从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功则返回None
。re.search
:扫描整个字符串,搜索第一个位置的匹配。re.findall
:找出字符串中所有匹配的子串,并把它们作为列表返回。re.sub
:替换字符串中的一些子串。re.compile
:编译正则表达式,提高效率。
代码示例
import re
# 查找所有数字
result = re.findall(r'\d+', 'chuan 123 zhi 456')
print(result) # 输出: ['123', '456']
# 替换数字为下划线
modified_string = re.sub(r'\d', '_', 'chuan 123 zhi 456')
print(modified_string) # 输出: 'chuan _ _ zhi _ _'
# 编译正则表达式
pattern = re.compile(r'\d+', re.S)
found = pattern.findall('123 456 789')
print(found) # 输出: ['123', '456', '789']
4 Python中原始字符串r的用法
原始字符串定义
原始字符串(raw string)通过在字符串前加上r
或R
来定义,表示字符串中的反斜杠\
不应该作为转义字符。
代码示例
# 原始字符串与普通字符串的区别
print(r'\n') # 输出: \n
print('\n') # 输出: (换行)
# 原始字符串的长度
print(len(r'\n')) # 输出: 2
print(len('\n')) # 输出: 1
5 匹配中文
代码示例
import re
# 匹配中文字符
title = u'你好,hello,世界'
pattern = re.compile(ur'[\u4e00-\u9fa5]+')
result = pattern.findall(title)
print(result) # 输出: ['你好', '世界']
6 正则表达式的应用场景
- 验证输入(如邮箱、电话号码等格式)
- 搜索和替换文本
- 从日志文件中提取信息
- HTML/XML解析等
正则表达式是文本处理的强大工具,掌握其语法和使用方式对于编程和数据处理非常重要。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)