正则表达式 - 匹配除此模式之外的所有内容(以及第一个和最后一个)

时间:2016-03-15 18:16:55

标签: regex dns

我正在尝试调整DNS数据的模式以匹配看起来像DNS地址的内容。在这种情况下,我有一个看起来像这样的字符串。

(19)espnfivethirtyeight(5)files(9)wordpress(3)com(0)

我想将其更改为实际的DNS名称,如下所示:

espnfivethirtyeight.files.wordpress.com

是否有能够执行此操作的正则表达式?

2 个答案:

答案 0 :(得分:0)

这可以分两步完成。

  1. 使用此正则表达式并替换为空。

    ^\(\d+\)|\(\d+\)$这将用空字符串替换第一个和最后一个(number) Demo here

  2. 使用此正则表达式并替换为点。

    \(\d+\)这将用点替换(number)的每一次出现。 Demo here

答案 1 :(得分:0)

由于没有正则表达式环境的迹象。我假设它是蟒蛇。

import re

data = "(19)espnfivethirtyeight(5)files(9)wordpress(3)com(0)"
rx = re.compile(r"\(\d+\)")

print('.'.join([x for x in rx.split(data) if x!='']))

基于输入字符串,它将打印:

espnfivethirtyeight.files.wordpress.com