import re
S = input()
p = re.compile('<[a-z0-9 ]+>|[a-z0-9 ]')
m = p.findall(S)
result = ''
stack = ''
idx = 1
for word in m:
if word[0] == '<':
result += stack[::-1]
result += word
stack = ''
else:
if word == ' ':
result += stack[::-1] + ' '
stack = ''
elif idx == len(m):
stack += word
result += stack[::-1]
stack = ''
else:
stack += word
idx += 1
print(result)
# 패턴 만들기
import re
p = re.compile('[a-z]+')
# match 매치 확인
m = p.match('3 python')
print(m) # None : 3이 [a-z]+ 에 매치 되지 않는다
# search
m = p.match('3 python')
print(m) # <re.Match object; span=(2, 8), match='python'>
# search는 문자열을 전체를 검색하기 때문에 매치된다.
findall
result = p.findall("life is too short")
print(result)
# ['life', 'is', 'too', 'short']
# [a-z]+ 와 매치되는 모든 값을 리스트로 리턴
finditer
result = p.finditer("life is too short")
print(result)
<callable_iterator object at 0x01F5E390>
for r in result: print(r)
...
<re.Match object; span=(0, 4), match='life'>
<re.Match object; span=(5, 7), match='is'>
<re.Match object; span=(8, 11), match='too'>
<re.Match object; span=(12, 17), match='short'>