변수가 여러 줄로되어 있고 test v1.0
을 upside
으로 바꾸려고하는데 문제는 전체 행만 바꾸려고하는 것입니다. 그것이 내가 re.sub
를 사용하여 대체 할 수있는 패턴으로 '\^test v1.0\$'
을 퍼팅 시도 처음 test v1.0.1
파이썬 - 문자열 변수에서 정규 표현식 부분 문자열 찾기 및 바꾸기
pkgLogExtract = dedent("""
test v1.0.1
nothing
test v1.0
out
in
flip
""")
print (re.sub(r'\^test v1.0\$', "upside", pkgLogExtract, 1))
를 대체하지해야하지만 아무것도를 대체하지 않도록 패턴과 일치합니다. 또한 원시 플래그를 사용하여 시도 했으므로 r'\^test v1.0\$'
하지만 아무것도 대체하지 않습니다. 내가 뭘 할 수 있을지 아무 생각 없어?
'\ ^'는 리터럴 '^'과 일치합니다. 같은 것은'$'에 관한 것입니다. 'flags = re.M'을're.sub'에 건네주고'^'와'$'에서 백 슬래시를 제거해야합니다. 그리고'.'를 피하십시오. http://ideone.com/ijPIra –
을 참조하십시오.'your_string.replace ("test v1.0 \ n", "위쪽")'너무 부서지기 쉽습니다? – jDo
@jDo 나는 모든 상황에서'replace'가 작동 할 것이므로 100 % 확신 할 수 없으므로 정규 표현식을 선택했습니다 (위의 스크립트는 단지 의사 코드입니다). – TheGirrafish