以下を変換したいと思います。
"some text http://one.two.three.source.com more text. more text more text http://source.com more text. more text http://one.source.com more text more text. moreテキストhttp://one.two.source.comもっとテキスト もっとテキスト"
これに:
"some text http://one_two_three.target.com more text more text more text http://target.com more text more text http://one.target.com more text more text more text http://one_two. target.comもっとテキスト もっとテキスト"
「.」を変換したい 大量のテキストで各サブドメインを「_」で区切ると、問題は、サブドメインがあるかどうかに応じて条件付きにしたいことです。残りのテキストを予測することはできず、変換は URL パターンに対してのみ行う必要があります。
これは私がこれまでに持っているものです:
src = 'source.com'
dst = 'target.com'
reMatch = r'http(?P<a>s?):(?P<b>\\?)/(?P<c>\\?)/(?P<d>([^.:/]+\.)?)(?P<e>([^.:/]+\.)?)(?P<f>([^.:/]+\.)?)' + src
p = re.compile(reMatch, re.IGNORECASE)
reReplace = r'http\g<a>:\g<b>/\g<c>/\g<d>\g<e>\g<f>' + dst
p.sub(reReplace, content)
'source.com' を 'target.com' に置き換え、サブドメイン (最大 3 つ) をコピーするだけで、'.' は置き換えません。サブドメイン間に「_」を使用します。