Python正则表达式 1

简介: Python正则表达式

1 正则表达式介绍

正则表达式 :一组由字母和符号组成的特殊文本,可以帮助我们从某个复杂的字符串中,提取出满足我们要求的特殊文本。

实际开发过程中经常会有查找符合某些复杂规则的字符串的需要,比如:邮箱、图片地址、手机号码等,这时候想匹配或者查找符合某些规则的字符串就可以使用正则表达式了。

2 re模块介绍

本文通过python中正则进行举例测试。首先python中使用正则表达式需要导入模块re。

注:re.match() 根据正则表达式从头开始匹配字符串数据,如果如果开头没有匹配上,则会报错。下面案例都会使用match进行匹配,方便讲解。

2.1 re模块的介绍

在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个 re 模块。

# 导入re模块
import re
# 使用match方法进行匹配操作
result = re.match(正则表达式,要匹配的字符串)
# 如果上一步匹配到数据的话,可以使用group方法来提取数据
result.group()

2.2 re模块的使用

import re
# 使用match方法进行匹配操作
result = re.match("csdn","csdn.net")
# 获取匹配结果
info = result.group()
print(info)
# csdn

正则表达式之所以这么强大,是因为拥有很多专用的操作符(又称“元字符”)、特殊字符和修饰符。

为了更加方便记忆和学习正则表达式,我将这些分成了匹配单个字符、匹配多个字符、匹配开头结尾、匹配分组来分别讲解。

3 匹配单个字符

代码 功能
. 匹配任意1个字符(除了换行符\n)
[ ] 匹配[ ]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s 匹配空白,即 空格,tab键
\S 匹配非空白
\w 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字
\W 匹配特殊字符,即非字母、非数字、非汉字

3.1 示例1: .

import re
# . 匹配任意1个字符(除了\n)
# 1. 正则表达式
# 2. 要匹配的字符串
# match_obj返回匹配对象
ret = re.match(".","M")
print(ret.group())
ret = re.match("t.o","too")
print(ret.group())
ret = re.match("t.o","two")
print(ret.group())
match_obj = re.match("t.o", "t\no")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")

运行结果:

M
too
two
匹配失败

3.2 示例2:[]

import re
# 1. 正则表达式
# 2. 要匹配的字符串
# match_obj返回匹配对象
# [ ] 匹配[ ]中列举的字符
# 如果hello的首字符小写,那么正则表达式需要小写的h
ret = re.match("h","hello Python")
print(ret.group())
# 如果hello的首字符大写,那么正则表达式需要大写的H
ret = re.match("H","Hello Python")
print(ret.group())
match_obj = re.match("葫芦娃[12]", "葫芦娃1")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")
# 匹配银行卡密码中的其中一位
match_obj = re.match("[0123456789]", "7")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")
match_obj = re.match("[0-9]", "7")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")

运行结果:

h
H
葫芦娃1
7
7

3.3 示例3:\d

# \d = > [0-9]= >[0123456789]
match_obj = re.match("\d", "7")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")

运行结果:

7

3.4 示例4:\D

# \D: 匹配一个非数字字符
match_obj = re.match("\D", "a")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")

运行结果:

a

3.5 示例5:\s

# \s: 匹配一个空白字符,空格或者tab键
match_obj = re.match("葫芦娃\s[12]", "葫芦娃 1")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")

运行结果:

葫芦娃 1

3.6 示例6:\S

match_obj = re.match("葫芦娃\S[12]", "葫芦娃+1")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print("没空白的匹配:", result)
else:
# 匹配失败match_obj是一个None
print("没空白的匹配:匹配失败")

运行结果:

没空白的匹配: 葫芦娃+1

3.7 示例7:\w

# \w: 匹配一个字母、数字、下划线、汉字
match_obj = re.match("\w", "哈")
if match_obj:
# 获取匹配结果
result = match_obj.group()
print(result)
else:
# 匹配失败match_obj是一个None
print("匹配失败")

运行结果:

3.8 示例8:\W

# 匹配特殊字符中的一位
match_obj = re.match("\W", "&")
if match_obj:
# 获取匹配结果
print(match_obj.group())
else:
print("匹配失败")

运行结果:

&


目录
相关文章
|
4月前
|
Python
"揭秘!Python如何运用神秘的正则表达式,轻松穿梭于网页迷宫,一键抓取隐藏链接?"
【8月更文挑战第21天】Python凭借其强大的编程能力,在数据抓取和网页解析领域表现出高效与灵活。通过结合requests库进行网页请求及正则表达式进行复杂文本模式匹配,可轻松提取网页信息。本示例展示如何使用Python和正则表达式解析网页链接。首先确保已安装requests库,可通过`pip install requests`安装。接着,利用requests获取网页内容,并使用正则表达式提取所有`<a>`标签的`href`属性。
52 0
|
1月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
46 5
|
1月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
2月前
|
Python
【收藏备用】Python正则表达式的7个实用技巧
【收藏备用】Python正则表达式的7个实用技巧
32 1
|
2月前
|
数据安全/隐私保护 Python
Python实用正则表达式归纳
Python实用正则表达式归纳
20 3
|
2月前
|
Python
Python 正则表达式高级应用指南
正则表达式是文本模式匹配的强大工具,Python 的 `re` 模块支持其操作。本文介绍正则表达式的高级应用,包括复杂模式匹配(如邮箱、电话号码)、分组与提取、替换操作、多行匹配以及贪婪与非贪婪模式的区别。通过示例代码展示了如何灵活运用这些技巧解决实际问题。
31 7
|
2月前
|
JavaScript 前端开发 Scala
Python学习十:正则表达式
这篇文章是关于Python中正则表达式的使用,包括re模块的函数、特殊字符、匹配模式以及贪婪与非贪婪模式的详细介绍。
19 0
|
2月前
|
数据采集 开发者 Python
Python正则表达式之re.compile函数
`re.compile`是Python正则表达式处理中一个强大的工具,它通过预先编译正则表达式,不仅提升了执行效率,还增强了代码的组织性和可读性。掌握其使用,对于涉及文本分析、数据清洗、日志处理等领域的Python开发者来说,是非常必要的技能。正确并高效地应用这一功能,可以显著提升程序的性能和维护性。
134 0
|
3月前
|
索引 Python
30天拿下Python之正则表达式
30天拿下Python之正则表达式
20 0
|
3月前
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
49 0