2 python regex dictionary case-insensitive
我正在 Python 中使用正则表达式进行字典操作。我想从字典项中删除1dc.comor 1DC.comor 1dc.COMor 。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'}
Run Code Online (Sandbox Code Playgroud)
预期输出 -
['a1pvdb092']
['W00000001']
['a10000048']
['a10000049']
Run Code Online (Sandbox Code Playgroud)
脚本 -
import re
from opswareConnect import data
for row in data:
arg1 = [row["system_name"],]
arg1 = re.sub('[.1DC.com]\\b', '', str(arg1))
print arg1
Run Code Online (Sandbox Code Playgroud)
脚本的输出 -
['a1pvdb092']
['WBPVAP001Dco']
['a10000048']
['a10000049']
Run Code Online (Sandbox Code Playgroud)
正则表达式是\.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)])
Run Code Online (Sandbox Code Playgroud)
['a1pvdb092']
['W00000001']
['a10000048']
['a10000049']
Run Code Online (Sandbox Code Playgroud)