유랑하는 나그네의 갱생 기록

だけど素敵な明日を願っている -HANABI, Mr.children-

Security & Hacking/pythonchallenge.com

python challenge 3

Madirony 2019. 7. 12. 23:41
728x90

파이썬 챌린지 3

One small letter, surrounded by EXACTLY three big bodyguards on each of its sides.

(대충 앞뒤로 정확히 3개의 대문자 사이에 끼어있는 소문자를 찾으라는 내용)

 

 

f12를 눌러서 HTML소스에서 힌트를 찾습니다.

이것도 정규 표현식을 사용해서 찾는 문제에요.

이건 노가다 하라해도 못할 거 같아요.

 

그냥 적당히 [A-Z]{3}([a-z])[A-Z]{3}하면

앞뒤로 3개의 대문자로 둘러싸인 소문자들을 찾을 수 있겠죠?

import re
pattern = re.compile("[A-Z]{3}([a-z])[A-Z]{3}")
print("".join(re.findall(pattern,string)))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

라고 생각했다면 큰 오산입니다.

AAAaBBBbCCCCcDDD를 예로 들자면

정확히 앞뒤가 대문자 3개로 둘러싸여야 가능한데,

 

AAAaBBBbCCCCcDDD

이건 뭐 된다 칩시다.

 

AAAaBBBbCCCCcDDD

AAAaBBBbCCCCcDDD

위의 코드를 쓰면 대문자가 몇 개 연속이던

3개만 충족되면 결과로 출력되는 불상사가 일어나게 됩니다.

 

그래서 수정한 코드.

import re
pattern = re.compile("[a-z][A-Z]{3}([a-z])[A-Z]{3}[a-z]")
print("".join(re.findall(pattern,string)))

ㅎㅎ

 

 

string에 HTML 힌트에 있던 문자들을 집어넣고

코드를 실행하면

 

linkedlist

 

 

linkedlist.html로 갑시다.

뭐야 이건

 

linkedlist.php로 갑시다.

728x90

'Security & Hacking > pythonchallenge.com' 카테고리의 다른 글

python challenge 5  (0) 2019.07.13
python challenge 4  (0) 2019.07.13
python challenge_2  (0) 2019.07.12
python challenge 1  (0) 2019.07.12
python challenge 0  (0) 2019.07.06