正则表达式是一种用于处理字符串的强大工具,它有自己的语法和应用规则。Python中的正则表达式通过内置模块re来实现。
首先,我们需要导入re模块。在Python中使用正则表达式之前,我们需要使用import语句导入re模块。
import re
接下来是一些基本符号和规则:
.
:匹配任何字符(除了换行符)。^
:匹配字符串开始。$
:匹配字符串结束。*
:前一个字符0次或无限次扩展。+
:前一个字符1次或无限次扩展。?
:前一个字符0次或1次扩展。
例如:
# 匹配任何以a开始、以b结束、中间有0个或多个c的字符串
pattern = re.compile('^ac*b$')
还有更复杂的规则:
7.{n}
: 前一个字符出现n 次。
8.{n,}
: 前一个字符至少出现 n 次。
9.{,m}
: 前面的元素最多重复 m 次(不包括 m).
10.{n,m}
: 扩展前面元素至少 n 次不超过 m 次。
例如:
# 匹配包含a后面跟着2到4个b的字符串
pattern = re.compile('ab{2,4}')
字符集合:
11.[abc]
:匹配a或b或c。
12.[^abc]
:匹配除了a、b、c之外的字符。
13.[a-z]
:匹配任何小写字母。
14.[A-Z]
:匹配任何大写字母。
例如:
# 匹配包含任意小写字母的字符串
pattern = re.compile('[a-z]')
特殊字符:
\d
: 任意一个数字,等价于 [0-9]\D
: 除了数字都可以,等价于 1\s
: 包括空格, 制表符, 换行符等空白字符的其中一个.\S
: 除了空白符外的所有.\w
: 单词字符,包括 a-z, A-Z, 0-9 和下划线.\W
: 非单词字符.
例如:
# 匹配包含至少一个数字和至少一个非单词(特殊)字符的字符串
pattern = re.compile('\d+\W+')
正则表达式主要有以下几种方法:
1)match()函数: 如果正则表达式在字符串开始处找到模式,则返回相应match对象;如果没有找到,则返回None。
2)search()函数: 搜索整个字符串以查找与模式相匹配项。如果成功,则返回Match对象;如果没有找到,则返回None。
3)findall()函数: 返回一个包含所有匹配字符串的列表。
4)split()函数: 根据模式的匹配项来分割字符串,返回一个列表。
5)sub()函数: 使用指定的替换项替换模式的所有匹配项,然后返回新字符串。
例如:
import re
text = "Hello, my phone number is 1234567890 and my friend's number is 0987654321."
# 使用findall找出所有电话号码
numbers = re.findall('\d{10}', text)
print(numbers) # 输出:['1234567890', '0987654321']
# 使用sub将电话号码替换为星号
masked_text = re.sub('\d{10}', '**********', text)
print(masked_text) # 输出:"Hello, my phone number is ********** and my friend's number is **********."
以上就是Python中正则表达式基础知识和使用方法。正则表达式是一种强大而灵活的工具,但也很复杂。理解和使用它需要时间和实践。希望这个简介能帮助你开始学习Python中正则表达式。
海外免备案云服务器链接:www.tsyvps.com
蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。
- 0-9 ↩