print(re.findall(r'[a-z]+\d+(?!!)\b', 'tube1109! gorio303 ryan416'))

결과

['gorio303', 'ryan416']

여기서 (?!!)가 어떤 의미인지 모르겟습니다.... 제가 정규표현식 배운것은 ()의 그룹의 의미와 캡쳐의 의미, 

?가 여러쓰임들

1.그룹화에서 그룹이름지정 ex:, ?P  ?P , etc.....

 2.그리디한 * ,+뒤에 붙여줌으로써 논그리디화시키기,  ex: *? , +?

3. 뭐 사실 2.와 똑같은쓰임이지만 특정문자앞에 와서 0번또는 1번쓰임을 뜻하기  ex: a?[bc]d

 4.re.MULTLINE 는 (?m )   ,re.DOTALL은 (?s)같은 inline flag  ex: print(re.findall('(?s)a..', 'abc a  a\na'))


이렇게 알고있는데 여기서 어떻게 쓰인건지 모르겠어요... (?!)형태는 처음봐서요.. 고수님덜 부탁드립니다..


부정,긍정,전방,후방 탐색을 안배워서 몰랐네요.... 죄송합니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ