프로그래밍 언어/Python

Python string.replace 정규식

Rateye 2021. 11. 24. 12:51
728x90
반응형
질문 : Python string.replace 정규식

다음 형식의 매개 변수 파일이 있습니다.

parameter-name parameter-value

매개 변수의 순서는 상관 없지만 한 줄에 하나의 매개 변수 만 있습니다. 한 매개 변수의 parameter-value 을 새 값으로 바꾸고 싶습니다.

string.replace(pattern, sub) 를 사용하는 줄을 바꾸기 위해 이전 에 게시 된 줄 바꾸기 함수를 사용하고 있습니다. 내가 사용하는 정규식은 예를 들어 vim에서 작동하지만 string.replace() 에서는 작동하지 않는 것 같습니다.

다음은 내가 사용중인 정규식입니다.

line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))

여기서 "interfaceOpDataFile" 은 대체 할 매개 변수 이름 (대소 문자를 구분하지 않는 경우 / i)이고 새 매개 변수 값은 fileIn 변수의 내용입니다.

파이썬이이 정규식을 인식하도록하는 방법이 있습니까? 아니면이 작업을 수행하는 다른 방법이 있습니까?

답변

str.replace() v2 | v3 는 정규 표현식을 인식하지 않습니다.

정규식을 사용하여 대체를 수행하려면 re.sub() v2 | v3 .

예를 들면 :

import re

line = re.sub(
           r"(?i)^.*interfaceOpDataFile.*$", 
           "interfaceOpDataFile %s" % fileIn, 
           line
       )

루프에서 먼저 정규식을 컴파일하는 것이 좋습니다.

import re

regex = re.compile(r"^.*interfaceOpDataFile.*$", re.IGNORECASE)
for line in some_file:
    line = regex.sub("interfaceOpDataFile %s" % fileIn, line)
    # do something with the updated line
출처 : https://stackoverflow.com/questions/16720541/python-string-replace-regular-expression
728x90
반응형