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通配符主要有星號通配符、問號通配符、方括號通配符和大括號通配符。通常,多種通配符的組合也是很常見的。在實際的開發中,我們可以根據具體的業務情況選用不同的通配符。
原創文章,作者:SYKQR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/375491.html