2017-09-28 10 views
-4

の前で固定サイズのサブストリングの交換:私は非常に長い文字列をは、私は次のような問題している既知のパターン

  1. を持っている(文字列の長さ= 54883508)私は、内のすべてのサブストリングを交換する必要が
  2. 非常に短い時間

は、文字列は、このパターンに次のものが含まれています

aaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaXXXXXXXXXCCaaXXXXXXXXXCCaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCC 

私が必要XXXXXXXXXCCを置き換えることができますが、私が知っている唯一のことはCCの位置です。XXXXXXXXXは動的でランダムです。

あなたはこれが11CCを変更します。この

import re 
data = 'aaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaa aaaaXXXXXXXXXCCaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaXXXXXXXXXCCaaXXXXXXXXXCCaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCC' 

print re.sub('(?<=XXXXXXXXX)CC', '11', data) 

を行うことができますre.sub機能を使用して

+0

mkrieger1 @モジュール – Vinny

+0

再チェックのpython私は私だけXXXXXXXXXまたはCCにあるもののCC nitherの位置を知っているときXXXXXXXXXCCを交換する方法がわかりません。 –

+0

@Vinny私はしましたが、私は使用できませんまたは適切な例を見つける –

答えて

1

(?<=XXXXX)CCで定義されたパターンは、の前にXXXXXと一致する場合のみ一致します。そうでない場合は一致しません。パターンは分かっていませんが、文字数を知っている場合は、(?<=\w{9})CCを使用して9文字前に一致させることができます。

+0

文字列には文字通り「CC」が含まれているとは思わないまたは 'XXXX ... '。だから私は実際の例を求めたのです。 – mkrieger1

+0

だから、あなたが探しているものに 'CC'を、' \ w'のような別の正規表現パターンでXXXを変更します – Vinny

関連する問題