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-tw/n/375491.html