📅  最后修改于: 2023-12-03 15:04:03.456000             🧑  作者: Mango
正则表达式是一种用于匹配字符串的工具,今天我们来回顾一下 Python 中的正则表达式。
在 Python 中,我们可以使用 re
模块来使用正则表达式。比如,如果我们要匹配一个任意字符,可以使用 .
:
import re
text = "Hello World"
result = re.findall(".", text)
print(result) # ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
如果我们要匹配一个特定的字符,可以直接写上这个字符:
import re
text = "Hello World"
result = re.findall("o", text)
print(result) # ['o', 'o']
如果我们要匹配一个字符集合,可以使用方括号来表示:
import re
text = "Hello World"
result = re.findall("[lo]", text)
print(result) # ['l', 'l', 'o', 'l']
当然,还有很多其他的正则表达式符号,比如 *
、+
、?
、{m}
、{m,n}
等等。
findall
方法会返回所有匹配到的结果,但是我们也可以使用 search
方法来匹配一个特定的对象:
import re
text = "Hello World"
result = re.search("o", text)
print(result) # <re.Match object; span=(4, 5), match='o'>
类似地,我们还可以使用 match
方法来匹配字符串的起始位置:
import re
text = "Hello World"
result = re.match("H", text)
print(result) # <re.Match object; span=(0, 1), match='H'>
正则表达式还支持分组,让我们可以把匹配到的内容按照一定的规则进行处理。
比如,我们可以使用圆括号来将一个特定的字符串成为一个组:
import re
text = "Hello World"
result = re.findall("([Hl])", text)
print(result) # ['H', 'l', 'l', 'l']
类似地,我们还可以使用 |
来表示多个分组的匹配规则,使用 \n
来表示第 n 个分组:
import re
text = "Hello World"
result = re.findall("(H|W)orld", text)
print(result) # ['Hello', 'World']
最后,我们还可以使用 sub
方法来进行正则表达式的替换。比如,我们可以将字符串中的所有数字替换为 X
:
import re
text = "The price is $19.99"
result = re.sub("\d+", "X", text)
print(result) # 'The price is $X'
在 Python 中使用正则表达式,我们可以进行字符串的各种复杂匹配和替换。虽然正则表达式的语法可能有一些晦涩难懂,但是只要多练习,相信大家都能掌握它的精髓。