import re
line = '''<link
rel="stylesheet"
type="text/css"
href="http://n...content-available-to-author-only...e.org/css/level.css">
<link
rel="stylesheet"
href="http://n...content-available-to-author-only...e.org/css/jquery-ui.css"
/>
<link
rel="stylesheet"
href="http://n...content-available-to-author-only...e.org/css/wechall.css"
/>
<script
src="http://n...content-available-to-author-only...e.org/js/jquery-1.9.1.js"></script>
<script
src="http://n...content-available-to-author-only...e.org/js/jquery-ui.js"></script>
<script
src=http://n...content-available-to-author-only...e.org/js/wechall-data.js></script><script
src="http://n...content-available-to-author-only...e.org/js/wechall.js"></script>
<script>var
wechallinfo
=
{
"level":
"natas8",
"pass":
"DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe"
};</script></head>
<body>
<h1>natas8</h1>
<div
id="content">
Access
granted.
The
password
for
natas9
is
W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl <-- here it is
<form
method=post>
Input
secret:
<input
name=secret><br>
<input
type=submit
name=submit>
</form>
<div
id="viewsource"><a
href="index-source.html">View
sourcecode</a></div>
</div>
</body>
</html>'''
pattern = re.compile("^([A-Za-z0-9]{32})$", re.MULTILINE)
if pattern.finditer(line):
print ("matched")
else:
print ("No")
aW1wb3J0IHJlCmxpbmUgPSAnJyc8bGluawpyZWw9InN0eWxlc2hlZXQiCnR5cGU9InRleHQvY3NzIgpocmVmPSJodHRwOi8vbi4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5vcmcvY3NzL2xldmVsLmNzcyI+CjxsaW5rCnJlbD0ic3R5bGVzaGVldCIKaHJlZj0iaHR0cDovL24uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUub3JnL2Nzcy9qcXVlcnktdWkuY3NzIgovPgo8bGluawpyZWw9InN0eWxlc2hlZXQiCmhyZWY9Imh0dHA6Ly9uLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLm9yZy9jc3Mvd2VjaGFsbC5jc3MiCi8+CjxzY3JpcHQKc3JjPSJodHRwOi8vbi4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5vcmcvanMvanF1ZXJ5LTEuOS4xLmpzIj48L3NjcmlwdD4KPHNjcmlwdApzcmM9Imh0dHA6Ly9uLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLm9yZy9qcy9qcXVlcnktdWkuanMiPjwvc2NyaXB0Pgo8c2NyaXB0CnNyYz1odHRwOi8vbi4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5vcmcvanMvd2VjaGFsbC1kYXRhLmpzPjwvc2NyaXB0PjxzY3JpcHQKc3JjPSJodHRwOi8vbi4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5vcmcvanMvd2VjaGFsbC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+dmFyCndlY2hhbGxpbmZvCj0KewoibGV2ZWwiOgoibmF0YXM4IiwKInBhc3MiOgoiREJmVUJmcVFHNjlLdkp2SjFpQWJNb0lwd1NOUTliV2UiCn07PC9zY3JpcHQ+PC9oZWFkPgo8Ym9keT4KPGgxPm5hdGFzODwvaDE+CjxkaXYKaWQ9ImNvbnRlbnQiPgoKQWNjZXNzCmdyYW50ZWQuClRoZQpwYXNzd29yZApmb3IKbmF0YXM5CmlzClcwbU1oVWNSUm5HOGRjZ2hFNHF2azNKQTlsR3Q4bkRsIDwtLSBoZXJlIGl0IGlzCjxmb3JtCm1ldGhvZD1wb3N0PgpJbnB1dApzZWNyZXQ6CjxpbnB1dApuYW1lPXNlY3JldD48YnI+CjxpbnB1dAp0eXBlPXN1Ym1pdApuYW1lPXN1Ym1pdD4KPC9mb3JtPgoKPGRpdgppZD0idmlld3NvdXJjZSI+PGEKaHJlZj0iaW5kZXgtc291cmNlLmh0bWwiPlZpZXcKc291cmNlY29kZTwvYT48L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPicnJwpwYXR0ZXJuID0gcmUuY29tcGlsZSgiXihbQS1aYS16MC05XXszMn0pJCIsIHJlLk1VTFRJTElORSkKaWYgcGF0dGVybi5maW5kaXRlcihsaW5lKToKICAgIHByaW50ICgibWF0Y2hlZCIpCmVsc2U6CiAgICBwcmludCAoIk5vIikK