정규표현식 질문

로드맵 강의를 보면서 풀이를 완료했습니다.
패스워드가 DH로 시작하나 필터링이 걸려있어 이를 D. 와 같은 정규 표현식으로 우회한다는 것도 이해 하였습니다.
다만 정규표현식이 왜 D.{{ 이런식으로 작성되는지 궁금합니다.
{n} 와 같은 형식일 때는 앞 표현이 n번 나타난다는 의미로 해석되는데 해당 정답 코드에 적혀있는 {{는 닫히는 부분도 없고 구글링 해봐도
정확히 어떤 표현인지 찾을 수가 없습니다 ㅜㅜ

#web
작성자 정보
답변 2
집오리너구리
강의 수강: 10

D.{{가 포맷 문자열 리터럴(f'') 안에서는 D.{라고 보시면 됩니다.

파이썬 대화형 모드에서 help('FORMATTING')라고 입력하면 매뉴얼이 나옵니다. 문자열에 {을 포함하기 위해선 {{를 사용하라고 되어있습니다.

flag="dream_hack"
print('FLAG: DH{')
print(f'FLAG: DH{') # 오류 발생
print('FLAG: DH{{')
print(f'FLAG: DH{{')
print(f'FLAG: DH{flag}')
print(f'FLAG: DH{flag}')
print(f'FLAG: DH{{flag}') # 오류 발생
print(f'FLAG: DH{{{flag}')

위 코드를 실행해보시면 차이를 볼 수 있을 겁니다.

2022.03.01. 12:19
탈퇴한 이용자
대표 업적 없음

{{ 는 { 로, }} 는 } 로 치환됩니다.

즉, {변수}를 만드려면 {{ + {변수} + }} 가 되어야 하는 것이죠.

(formatted-string-literals 사용 시)

2022.03.30. 11:18
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기