Python字符串替换

时间:2017-04-14 20:38:50

标签: python string substitution

我有以下一些代码返回一些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"
  ]

2 个答案:

答案 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")