파이썬 정규표현식 질문입니다.
조회수 422회
각 변수에 문자열이 할당되어있고 그 변수들을 합쳐서 정규표현식으로 컴파일하고 싶습니다. 아래와 같은 경우인데요.
import re
a = "[질문]"
b = "[답변]"
c = "(해결)"
message = "[질문](해결) 정규표현식 궁금합니다.[답변]"
regex = re.compile(f"{a}{b}{c}")
print(regex.sub("@", message)) # <= 잘못된 결과
# 1번 결과: [질문](해결) 정규표현식 궁금합니다.[답변]
실행시키면 위와 같이 결과가 나오는데요. 전혀 변경이 안되었는데요. 사실 제가 원하는 결과는 아래와 같이 나왔으면 하거든요.
abc = re.compile(r'\[질문]|\[답변]|\(해결\)')
print(abc.sub("@", message)) # <= 제가 원한 결과
# 2번 결과: @@ 정규표현식 궁금합니다.@
변수들을 문자열로 하나로 할당해서 그 자체를 정규표현식으로 컴파일 할려면 어떻게 해야하나요?
1 답변
-
import re a = "\\[질문\\]" b = "\\[답변\\]" c = "\\(해결\\)" message = "[질문](해결) 정규표현식 궁금합니다.[답변]" regex = re.compile(f"{a}|{b}|{c}") print(regex.sub("@", message)) # <= 잘못된 결과 # 1번 결과: [질문](해결) 정규표현식 궁금합니다.[답변] abc = re.compile(r'\[질문]|\[답변]|\(해결\)') print(abc.sub("@", message)) # <= 제가 원한 결과 # 2번 결과: @@ 정규표현식 궁금합니다.@ # result @@ 정규표현식 궁금합니다.@ @@ 정규표현식 궁금합니다.@
댓글 입력