我有以下串列
['Amount', 'amount', 'Line Total', 'lineTotal', 'AMOUNT DUE']
我正在嘗試從該串列中提取 'Amount'、'amount'、'Line Total'、'lineTotal' 但不是 'AMOUNT DUE' 欄位。我是這樣做的:
>>> lst = ['Amount', 'amount', 'Line Total', 'lineTotal', 'AMOUNT DUE']
>>> import re
>>> r = re.compile("(line*|amount\b)", re.IGNORECASE)
我正在使用正則運算式 OR 運算式,因為在實際用例中,我可以有不同的值(例如,其中一個值只能是“金額”值,其他值,另一個是“行總計”等),我想提取正是那個值取決于我所擁有的。所以在上面的例子中我希望得到
['Amount', 'amount', 'Line Total', 'lineTotal']
但相反,我得到
>>> list(filter(r.match, lst))
['Line Total', 'lineTotal']
為什么會這樣,我該如何解決?先感謝您!
uj5u.com熱心網友回復:
嘗試(regex101):
import re
lst = ["Amount", "amount", "Line Total", "lineTotal", "AMOUNT DUE"]
r = re.compile(r"(?=line|amount$).*", flags=re.IGNORECASE)
lst = list(filter(r.match, lst))
print(lst)
印刷:
['Amount', 'amount', 'Line Total', 'lineTotal']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527084.html
下一篇:如何創建帶有字典串列的嵌套字典
