Python 中的字符类操作是什么?


字符类操作是使用 Python 中的正则表达式匹配字符串中特定类型字符的一种方法。

在正则表达式中,“字符类”是指要匹配的一组字符。可以使用方括号 `[]` 创建字符类。例如,如果要匹配任何元音,可以使用字符类 `[aeiou]`。这将匹配任何单个字符,这些字符是 'a'、'e'、'i'、'o' 或 'u' 中的任何一个。

示例

此代码将使用正则表达式 `[aeiou]` 搜索 `text` 字符串中的所有元音,并返回找到的所有元音的列表。

如您所见,输出是字符串中所有元音的列表,按其出现的顺序排列。

import re
text = "The quick brown fox jumps over the lazy dog."
vowels = re.findall("[aeiou]", text)
print(vowels)

输出

['e', 'u', 'i', 'o', 'o', 'u', 'e', 'o', 'e', 'a', 'o']

示例

可以在字符类内部使用插入符号 `^` 字符来匹配在该类中的任何字符。例如,字符类 `[^aeiou]` 将匹配不是元音的任何字符。以下是一个示例

此代码将使用正则表达式 `[^aeiou ]` 搜索 `text` 字符串中的所有辅音(即任何不是元音或空格的字符),并返回找到的所有辅音的列表。输出将如下所示

如您所见,输出是字符串中所有辅音的列表,按其出现的顺序排列。

import re
text = "The quick brown fox jumps over the lazy dog."
consonants = re.findall("[^aeiou ]", text)
print(consonants)

输出

['T', 'h', 'q', 'c', 'k', 'b', 'r', 'w', 'n', 'f', 'x', 'j', 'm', 'p', 's', 'v', 'r', 't', 'h', 'l', 'z', 'y', 'd', 'g', '.']

示例

可以使用连字符 `-` 字符在字符类内部指定字符范围。例如,字符类 `[A-Z]` 将匹配从 A 到 Z 的任何大写字母。以下是一个示例

此代码将使用正则表达式 `[A-Z]` 搜索 `text` 字符串中的所有大写字母,并返回找到的所有大写字母的列表。

如您所见,输出是一个仅包含大写字母 'T' 的列表,因为它是字符串中唯一的大写字母。

import re
text = "The quick brown fox jumps over the lazy dog."
capital_letters = re.findall("[A-Z]", text)
print(capital_letters)

输出

['T']

示例

可以组合字符类以匹配更复杂的模式。例如,正则表达式 `[\w\d]` 将匹配任何字母数字字符。以下是一个示例

此代码将使用正则表达式 `[\w\d]` 搜索 `text` 字符串中的所有字母数字字符(即任何字母或数字),并返回找到的所有字母数字字符的列表。

如您所见,输出是字符串中所有字母数字字符的列表,按其出现的顺序排列。

import re
text = "The price is $2.99."
alphanumeric = re.findall("[\w\d]", text)
print(alphanumeric)

输出

['T', 'h', 'e', 'p', 'r', 'i', 'c', 'e', 'i', 's', '2', '9', '9']

示例

可以使用反斜杠 `\` 字符转义字符类内部的特殊字符。例如,正则表达式 $'[\backslash[\backslash]]'$ 将匹配任何方括号字符(`[` 或 `]`)。以下是一个示例

此代码将使用正则表达式 $'[\backslash[\backslash]]'$ 搜索 `text` 字符串中的所有方括号字符,并返回找到的所有方括号字符的列表。输出将如下所示

如您所见,输出是一个包含字符串中两个方括号字符的列表,因为它们是唯一与正则表达式 $'[\backslash[\backslash]]'$ 匹配的字符。

import re
text = "This is a [test]."
brackets = re.findall("[\[\]]", text)
print(brackets)

输出

['[', ']']

这些只是如何在 Python 中使用字符类操作的一些示例。通过组合字符类和其他正则表达式操作,您几乎可以匹配文本字符串中想到的任何模式。

更新于: 2023年5月19日

2K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告