[英]Issue with case-insensitive regex pattern for re.sub()
我正在使用Python中的正則表達式進行字典操作。我想從字典項中刪除1dc.com
或1DC.com
或1dc.COM
或1DC.COM
。
范例字典-
{'system_name': 'a1pvdb092', 'fdc_inv_sa_team': 'X2AIX_GBS'}
{'system_name': 'W00000001.1DC.com', 'fdc_inv_sa_team': 'LAA.BRAZIL.AAA.WINDOWS\n'}
{'system_name': 'a10000048', 'fdc_inv_sa_team': 'X2AIX_NSS'}
{'system_name': 'a10000049', 'fdc_inv_sa_team': 'X2AIX_NSS'}
預期產出-
['a1pvdb092']
['W00000001']
['a10000048']
['a10000049']
劇本-
import re
from opswareConnect import data
for row in data:
arg1 = [row["system_name"],]
arg1 = re.sub('[.1DC.com]\\b', '', str(arg1))
print arg1
腳本的輸出-
['a1pvdb092']
['WBPVAP001Dco']
['a10000048']
['a10000049']
正則表達式為\\.1dc\\.com
。 反斜杠轉義了通常與任何字符匹配而不僅僅是句點的點。
使用re.IGNORECASE標志使搜索不區分大小寫。
使用re.sub()查找並消除目標表達式。
import re
data = [
{'system_name': 'a1pvdb092', 'fdc_inv_sa_team': 'X2AIX_GBS'},
{'system_name': 'W00000001.1DC.com', 'fdc_inv_sa_team': 'LAA.BRAZIL.AAA.WINDOWS\n'},
{'system_name': 'a10000048', 'fdc_inv_sa_team': 'X2AIX_NSS'},
{'system_name': 'a10000049', 'fdc_inv_sa_team': 'X2AIX_NSS'},
]
for row in data:
sysname = row['system_name']
print([re.sub(r'\.1dc\.com', '', sysname, flags=re.IGNORECASE)])
['a1pvdb092']
['W00000001']
['a10000048']
['a10000049']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.