p.649 정규표현식 오타인가요?
, 박 정현님이 작성649 쪽 중간
m = re.match('(?P<func>[a-zA-Z_]+)\((?P<arg>\w+)\)', 'print(1234)')
여기서 [a-zA-Z_][a-zA-Z0-9_] 이렇게 두번 적힌 건 무슨 의미인가요?
[a-zA-Z_] 혹은 [a-zA-Z0-9_] 라고 하나만 입력을 해도
m.group('func') 와 m.group('arg') 의 출력값은 동일하게 나옵니다.
코드 밑의 해설을 보고 조심스럽게 오타인가 하는 생각이 들었습니다.
("참고로 함수 이름은 문자로만 시작해야 하므로 첫 글자는 [a-zA-Z_]로 판단해줍니다")
Re: p.649 정규표현식 오타인가요?
, Chicken Chic님이 작성말 그대로입니다.
함수 첫글자를 문자로만 판단하기 위해 [a-zA-Z]를 쓰는 것입니다.
'1print(1234)'를 넣어보면 예외가 발생합니다.
함수 첫글자를 제외하고는 문자,숫자,_가 올 수 있기에 [a-zA-Z0-9_]로 쓴 것이구요.
Re: p.649 정규표현식 오타인가요?
, 도장_ 관리자님이 작성파이썬에서 함수의 첫 글자는 알파벳 또는 _로 시작해야 합니다.
h100 같은 함수는 통과되고, 1hello는 안 된다는 뜻입니다.
오타가 아니고, 맞는 내용입니다.