首页 > 编程知识 正文

Python通配符有哪些

时间:2023-11-20 07:57:25 阅读:292615 作者:SVTP

Python通配符是一种表示字符串中模糊匹配的有效工具,用于匹配与具有特定模式匹配的字符串。Python中主要的通配符有:*,?,[]和{}。

一、星号通配符 *

在Python中,星号通配符 (*) 表示匹配任意数量的字符,包括零个字符。星号通配符通常用于匹配任意长度的字符串。例如:


import fnmatch

# 返回所有以 .txt 结尾的文件
files = ['file1.txt', 'file2.text', 'file3.doc', 'file4.txt']
file_list = [file for file in files if fnmatch.fnmatch(file, '*.txt')]
print(file_list)

以上代码最终输出 ['file1.txt', 'file4.txt']。

二、问号通配符?

在Python中,问号通配符(?) 表示匹配一个字符,它只能匹配零个或一个字符。例如:


import fnmatch

# 返回所有a后面接一个字符,再跟上.at结尾的字符串
strings = ['bat', 'cat', 'rat', 'blaat', 'boat']
string_list = [string for string in strings if fnmatch.fnmatch(string, 'a?at')]
print(string_list)

以上代码最终输出 ['bat', 'cat', 'rat']。

三、方括号通配符 []

在Python中,方括号通配符([])表示匹配方括号中指定的任何单个字符。例如:


import fnmatch

# 匹配以a,b或c开头的字符串
strings = ['apple', 'banana', 'carrot', 'xbox']
string_list = [string for string in strings if fnmatch.fnmatch(string, '[abc]*')]
print(string_list)

以上代码最终输出 ['apple', 'banana', 'carrot']。

四、大括号通配符 {}

在Python中,大括号通配符 ({}) 表示在大括号内的任何字符都是合法的。例如:


import fnmatch

# 匹配以at结尾的bat或cat字符串
strings = ['bat', 'cat', 'rat', 'blaat', 'boat']
string_list = [string for string in strings if fnmatch.fnmatch(string, '{[bc]}at')]
print(string_list)

以上代码最终输出 ['bat', 'cat']。

五、组合通配符

在Python中,多种通配符的组合也是非常常见的。例如:


import fnmatch

# 匹配以at结尾的bat或cat字符串
strings1 = ['bat', 'cat', 'rat', 'blaat']
string_list1 = [string for string in strings1 if fnmatch.fnmatch(string, '?*at')]
print(string_list1)

# 匹配所有以大写字母开头但不是元音字母的单词
strings2 = ['Apple', 'White', 'Crayon', 'aberS']
string_list2 = [string for string in strings2 if fnmatch.fnmatch(string, '[^AEIOU]*[A-Z]*')]
print(string_list2)

以上代码分别最终输出 ['bat', 'cat', 'blaat'] 和 ['White', 'Crayon', 'aberS']。

六、总结

Python通配符是一种非常强大的工具,它能够快速地进行字符串匹配和筛选。Python通配符主要有星号通配符、问号通配符、方括号通配符和大括号通配符。通常,多种通配符的组合也是很常见的。在实际的开发中,我们可以根据具体的业务情况选用不同的通配符。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。