📜  Python - 正则表达式回顾(1)

📅  最后修改于: 2023-12-03 15:04:03.456000             🧑  作者: Mango

Python - 正则表达式回顾

正则表达式是一种用于匹配字符串的工具,今天我们来回顾一下 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 中使用正则表达式,我们可以进行字符串的各种复杂匹配和替换。虽然正则表达式的语法可能有一些晦涩难懂,但是只要多练习,相信大家都能掌握它的精髓。