정규표현식 예제 질문입니다. (문장에서 특정 단어 제외 추출)

조회수 2015회

예를 들어 a for b of c 라는 문장이 있을 때, "for"라는 단어 앞 뒤의 단어를 추출해 내고 싶습니다.

추출하는 함수를 func라고 하면, func("a for b of c", "for", 1) -> a func("a for b of c", "for", 2) -> b 가 추출될 수 있도록 하려구요.

혹시 oracle 버전도 아시면 답변 부탁 드려요.

감사합니다.

** 줄 바꿈을 어떻게 하는지 모르겠네요 ㅠㅠ

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    그룹핑을 쓰시면 되는데요.

    (.*) for (.*)

    해석하면

    (for 앞에 있는 아무 글자나 0개 이상 그룹) for (for뒤에 있는 아무 글자나 0개이상 그룹)

    입니다.

    파이썬 코드로 보면 다음과 같이 쓸 수 있어요.

    import re
    
    search_target = 'shgdklahslktdgjwaolsdtgaswd for waseghtiouwaegtyawehtoi'
    regex = '(.*) for (.*)'
    r = re.search(regex, search_target)
    
    if r:
        print(r.group(1))
        print(r.group(2))
    

    실행하기 눌러서 나오는 코드실행기에서 실행해 보시면 두 줄이 출력되서 나옵니다. group(1)이나 group(2)중에 원하는걸 사용하시면 되겠네요.

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

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

(ಠ_ಠ)
(ಠ‿ಠ)