我有以下一些代码返回一些json。我想将输出更改为.sub.example.com。通常我可以在awk中执行此操作,但在这种特殊情况下,它需要在python中处理。
我一直试图做的是替换文字字符串' example.com'但是' sub.example.com'。滤除IP位有效,但我无法弄清楚应该更容易的部分:(。
def filterIP(fullList):
regexIP = re.compile(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$')
return filter(lambda i: not regexIP.search(i), fullList)
def filterSub(fullList2):
regexSub = re.recompile('example.com', 'sub.example.com', fullList2)
groups = {key : filterSub(filterIP(list(set(items)))) for (key, items) in groups.iteritems() }
print(self.json_format_dict(groups, pretty=True))
"role_1": [
"type-1.example.com",
"type-12-sfsdf-453-2.example.com"
]
答案 0 :(得分:0)
filterSub()
应致电re.sub()
并返回结果。您还需要在正则表达式中转义.
,因为它具有特殊含义。并使用$
锚点,以便只在域名末尾匹配它。
def filterSub(fullList2):
return re.sub(r'example\.com$', 'sub.example.com', fullList2)
答案 1 :(得分:0)
没有理由使用正则表达式:它是一个简单的字符串替换。
def filterSub(fullList2):
return fullList2.replace("example.com", "sub.example.com")