什么是 Python 中的字符类操作?
字符类操作是使用 Python 中的正则表达式来匹配字符串中某些类型的字符的一种方法。
在正则表达式中,”字符类”是一组要匹配的字符。您可以使用方括号 []
来创建字符类。例如,如果您想匹配任何元音字母,则可以使用字符类 [aeiou]
。这将匹配任何单个字符,即 ‘a’、’e’、’i’、’o’ 或 ‘u’。
更多Python相关文章,请阅读:Python 教程
示例
此代码将使用正则表达式 [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中使用字符类操作的几个示例。通过组合字符类和其他正则表达式操作,您可以在文本字符串中匹配几乎任何想到的模式。