정규표현식 예제 질문입니다. (문장에서 특정 단어 제외 추출)
조회수 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 답변
-
그룹핑을 쓰시면 되는데요.
(.*) 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)중에 원하는걸 사용하시면 되겠네요.
댓글 입력