2017-09-28 4 views
-4

앞에 고정 된 크기의 문자열을 교체 : 나는 매우 긴 문자열을나는 다음과 같은 문제가있다 알려진 패턴

  1. 이 (문자열의 길이 = 54883508) 나는 모든 문자열을 교체해야
  2. 내가 필요로하는

    aaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaXXXXXXXXXCCaaXXXXXXXXXCCaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCC 
    

    :

문자열이 패턴 다음과 같은 것들을 포함을 시간을 매우 짧은 XXXXXXXXXCC을 대체하지만 내가 알고있는 유일한 점은 CC의 위치이며 XXXXXXXXX은 동적이며 무작위입니다.

아이디어가 있으십니까?

+0

check python re module – Vinny

+0

@ mkrieger1 XXXXXXXXX 또는 CC에있는 CC의 위치 만 알면 XXXXXXXXXCC를 (를) 대체하는 방법을 모르겠습니다. –

+0

@Vinny했는데 적절한 예제를 사용하거나 찾을 수 없습니다. –

답변

1

11CC 변경됩니다이

import re 
data = 'aaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCCaaaaa aaaaXXXXXXXXXCCaaaaaaaaaaaaXXXXXXXXXCCaaaaaaaaaaaaaaaaXXXXXXXXXCCaaXXXXXXXXXCCaXXXXXXXXXCCaaaaaaaaaaaaaaaaaaaaXXXXXXXXXCC' 

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

을 할 수있는 re.sub 기능을 사용. (?<=XXXXX)CC에 의해 정의 된 패턴은 이 앞에 오는 경우에만 XXXXX과 일치합니다. 그렇지 않으면 그렇지 않습니다. 패턴을 모르지만 글자 수를 알고 있다면 (?<=\w{9})CC을 사용하여 앞에 9자를 매치 할 수 있습니다.

+0

문자열에 문자 그대로 * CC가 들어 있다고 생각하지 않습니다. 또는'XXXX ... '. 그래서 실제 사례를 물었습니다. – mkrieger1

+0

그래서'CC'를 당신이 찾는 것으로 바꾼다. 그리고 XXX는'\ w'와 같은 다른 정규식 패턴을 가지고 바꾼다. – Vinny