📅  最后修改于: 2023-12-03 15:10:58.333000             🧑  作者: Mango
正则表达式(Regular Expression,简称 RegEx)是描述字符串模式的一种简洁语法。程序员可以利用正则表达式来检索、替换、操作字符串。本文将介绍正则表达式的基本语法、常用符号及实例应用。
正则表达式是由字符和特殊字符组成的字符序列。其中,字符可以是任何可打印字符,如 a、A、1、$、# 等。
特殊字符包括:
如果要匹配一个固定字符串,可以直接将字符串作为正则表达式。例如,匹配字符串 "hello":
import re
s = "hello, world!"
pattern = "hello"
result = re.search(pattern, s)
print(result)
# 输出:<re.Match object; span=(0, 5), match='hello'>
如果要匹配任意单个字符,可以使用 . 号。例如,匹配以字母 a 开头、以字母 c 结尾的任意 3 个字符的字符串:
import re
s = "abc"
pattern = "a.c"
result = re.search(pattern, s)
print(result)
# 输出:<re.Match object; span=(0, 3), match='abc'>
如果要匹配一个字符集合中的任何一个字符,可以使用 [] 符号。例如,匹配任意一个数字字符的字符串:
import re
s = "12345"
pattern = "[0-9]"
result = re.findall(pattern, s)
print(result)
# 输出:['1', '2', '3', '4', '5']
如果要匹配重复出现的字符,可以使用 、+ 或 ? 符号。其中, 表示匹配前一个字符的零次或多次出现,+ 表示匹配前一个字符的一次或多次出现,而 ? 表示匹配前一个字符的零次或一次出现。例如,匹配连续的三个 a:
import re
s = "aaaaa"
pattern = "a{3}"
result = re.search(pattern, s)
print(result)
# 输出:<re.Match object; span=(0, 3), match='aaa'>
如果要匹配字符串的起始位置,可以使用 ^ 符号;如果要匹配字符串的结束位置,可以使用 $ 符号。例如,匹配以字母 a 开头的字符串:
import re
s = "abcde"
pattern = "^a.+"
result = re.search(pattern, s)
print(result)
# 输出:<re.Match object; span=(0, 5), match='abcde'>
如果要匹配多个相同的字符或字符串,则可以使用 () 符号进行分组匹配。例如,匹配连续出现的两个数字:
import re
s = "12-345-67"
pattern = "([0-9]+)-([0-9]+)-([0-9]+)"
result = re.search(pattern, s)
print(result.groups())
# 输出:('12', '345', '67')
如果要匹配多个模式中的任意一个,可以使用 | 符号进行或匹配。例如,匹配包含字母 a 或字母 b 的字符串:
import re
s = "bcd"
pattern = "a|b"
result = re.search(pattern, s)
print(result)
# 输出:None
本文介绍了正则表达式的基本语法、常用符号及实例应用。当然,正则表达式的语法远不止这些,读者可以继续深入学习。在实际开发中,正则表达式经常被用于数据处理、文本操作、搜索引擎等领域,是程序员必备的一项技能。