안녕하세요
인터뷰 책 덕분에 정말 도움이 많이 되고 있습니다
파이썬에 관한 부분을 읽으면서, 파이썬을 공부하면서 제가 놓쳤던 부분들, 부족한 부분들이 너무 많아 하나하나 공부해가고 있습니다.
책에서 다루는 부분은 아니지만.. 도움을 주신다면 정말 감사하겠습니다.
페이지 141에서 처음 보는 re.sub 정규식을 보고 책을 읽는 것을 잠시 멈추고 오늘 정규식 공부를 마쳤습니다.
그런데 백슬러시 부분은 계속 이해가 가지않네요..
it 커뮤니티 사이트에 질문도 해봤는데, 답변이 안달려서..
제가 group 없이 \s를 얻기 위해 아래 코드 compile 에서\\\\(정규식+리터럴)을 사용 해주었고 findall에서는 \\(리터럴)을 사용해 주었는데, 결과는 \\가 출력됩니다.
제 생각은 group()와 findall()의 리스트 return 값이 같아야하는데 왜 findall은 다르게 나오는지 이해가 가지않습니다..
-
import re
# Problem
a = re.compile('\\\\s') # "\\\\"
b = a.findall('\\s') # "\\" '\' 개수를 바꿔도 동일
print(b)
>>> ['\\s']
# Correct
b = a.search('\\s').group()
print(b)
>>> \s
안녕하세요
인터뷰 책 덕분에 정말 도움이 많이 되고 있습니다
파이썬에 관한 부분을 읽으면서, 파이썬을 공부하면서 제가 놓쳤던 부분들, 부족한 부분들이 너무 많아 하나하나 공부해가고 있습니다.
책에서 다루는 부분은 아니지만.. 도움을 주신다면 정말 감사하겠습니다.
페이지 141에서 처음 보는re.sub정규식을 보고 책을 읽는 것을 잠시 멈추고 오늘 정규식 공부를 마쳤습니다.그런데 백슬러시 부분은 계속 이해가 가지않네요..
it 커뮤니티 사이트에 질문도 해봤는데, 답변이 안달려서..
제가
group없이\s를 얻기 위해 아래 코드compile에서\\\\(정규식+리터럴)을 사용 해주었고 findall에서는\\(리터럴)을 사용해 주었는데, 결과는\\가 출력됩니다.제 생각은
group()와findall()의 리스트return값이 같아야하는데 왜findall은 다르게 나오는지 이해가 가지않습니다..