파이썬 코딩 질문좀 받아주세요

조회수 1183회

파이썬 정규표현 re.compile사용시 질문인데 anonymous@daum.net 홍길동  여기서 앞에 이메일주소만 출력하고싶을때 정규표현에 이걸 re.compile(₩₩b₩w+@[₩w.]+₩₩b) 이렇게나타낼수있다는데 저 꺽쇠 안에있는게 이해가안가요ㅠㅠ

  1. 꺽쇠를 쓴이유, 정규표현에서의 꺽쇠의 뜻이 [ab]이거면 에이 or 비 라는 뜻인데 저기서도 그렇게쓴건가요?
  2. 꺽쇠안에 . 이있는데 점을 쓴이유가 이메일주소안에있는 . 인지 아니면 화이트 스페이스 제외 문자 1회이상반복한다는 정규표현의 . 인지 이해가안가요
  3. 만약에 정규표현의 꺽쇠와 쩜 이라면 저 꺽쇠안의 뜻이 도데체뭔가요ㅠㅠㅠ 자연어나 숫자문자 (₩w) 이거나 . 이거나 라는던가요???? 그렇다면 꺽쇠는 정규표현이고 .은 걍문자인가요????

4.어떨때 정규표현으로쓰이고 어떨때 걍 문자인지 어케구별할수있나요? 저위에 @골뱅이는 그냥 문자로 쓰인거잖아요ㅠㅠ

다른문제도 질문드려요ㅠㅠ 문제가 re.search('D*[abc][abc]','₩tabc[abc]1234₩t₩n').group() 답이 '₩tabc[abc' 라고합니다.

1.일단 저 정규표현의 해석이 숫자가아닌 문자 0회또는 1회이상 반복하는 걸로 시작하고 뒤는 a b c중 하나 그담에 a.b.c중하나 맞나요??

  1. 제가위에 해석한게 맞다면 숫자가 아닌 문자 0회 또는 1회 이상 반복하는 걸로 시작하면 ₩tabc[abc] 이게 모두 답이되어야하는거 아닌가요?... 제가쓴거 뒤에는 1234가나오니까 저기까지가 숫자가 아닌거잖아요ㅠㅠ 이해가안가요

  2. 그리고 꺽쇠뜻이 a,b,c 중 1개 그담에도 꺽쇠가있으니까 a,b ,c 중 1개니까 아무리 많이 일치해봣자 두글자 밖에 안되는게 맞나요????( a,b 라든지)  도와주세요

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • re.compile('\\b\w+@[\w.]+\\b')
    

    은 오해의 소지가 많은데

    re.compile(r'\b\w+@[\w.]+\b')
    

    raw string으로 하든가

    re.compile('\\b\\w+@[\\w.]+\\b')
    

    와 같이 '\' 은 모두 '\\'로 표현하는 것이 좋을 것 같습니다.

    1) [\w.]+ 은 word(a,b,c... _ 등) 나 문자. ('.')의 연속을 의미 합니다. 이부분만 있으면 [ anonymous , daum.net ] 같은 것이 걸리겠죠....

    2) . 은 [ 안에 있으므로 한문자 ' . ' 을 의미합니다.

    3) , 4) 무슨 질문인지 잘 모르겠네요... @는 그냥 한문자 맞습니다.

    그 다음 질문은 그때그때 묻는 것 보다 https://regexr.com/ 에서 연습을 해보는 것이 더 좋을 것 같네요...

    암튼 [abc][abc] 가 의미하는 것은 aa , ab, ac , ba , bb , bc , ca ,cb, cc 입니다.

    ₩tabc[a 까지는 /D*(숫자아닌 문자)에 , bc는 [abc][abc]에 매치됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)