Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 병렬처리
- chirpy
- 통계학
- reverse_lazy
- de
- beatuifulsoup4
- 2023운전면허
- GPT-4
- 깃헙 블로그 오류
- 비용이슈
- ruby error
- 정규표현식
- Python
- simple-regression model
- AWS
- LinkedLists
- 정규표현식 조건문
- re.compile
- 넓이 우선 순회
- ChatGPT
- 평가지표
- githubblog
- list
- Selenium
- 벌크업데이트
- 중복성검사
- 다중 선형 회귀
- 파이썬
- 지연평가
- re
Archives
- Today
- Total
용사냥꾼69
문장 중간의 특정 문자만 선택하기-정규표현식을 활용 본문
728x90
정규표현식
이에 대한 자세한 설명은 구글에 많이 있지만, 실제로 우리가 굳이 이걸 활용해야 할 때는 다소 복잡한 상황이다.
" 안녕하세요 저는 용사냥꾼입니다 " [223번째]
라는 문장이 있을 때
앞의 "는 <로 바꾸고
뒤의 "는 >로 바꾸고 싶다면
그래서 결과적으로
< 안녕하세요 저는 용사냥꾼입니다 > [223번째]
같은 상황을 얻고 싶다면 이 때부터 정규표현식이 필요해진다.
이에 맞는 코드는
import re
txt = '"안녕하세요 저는 용사냥꾼입니다" [223번째]'
txt = re.sub('(?<!.)"','<',txt)
txt = re.sub('"(?!.*")','>',txt)
print(txt)
앞조건문 - (?<! 표현식)
정규표현식에서 (?<! 표현식) 는 조건문으로 앞에 위치한 문자열 중에서 이 조건 표현식을 만족하지 않으면서 내부 표현식을 만족할 경우를 의미한다.
반대로 (?<= 표현식)은 앞에 위치한 문자열이 조건문을 만족하는 경우다.
. 은 모든 문자를 의미한다.
결국 (?<!.)" 은 앞에 문자가 없는 경우의 "를 대상으로 하며 이는 문장 맨 처음의 "를 가리킨다.
뒷조건문 - (?= 표현식)
(?! 표현식)은 해당 표현식 뒤에 위치한 문자열 중에서 표현식을 만족하지 않을 경우를 의미한다.
(?= 표현식)은 반대로 뒤에 위치한 문자열이 표현식을 만족하는 경우다.
*은 정해지지 않은 반복횟수이며 얼마든지 반복해도 괜찮다는 의미다.
따라서 "(?!.*")은 뒤에 문자가 몇 개가 있든간에 "가 또 나오지 않을 경우의 "를 대상으로 한다.
"가 더 없을 경우, >로 문장을 닫아줘야 하기 때문이다.
조건문이 있다는 사실을 기억하자
정규표현식 자체에 조건문이 있다는 것만 알아두면 답답한 일이 적다.
다 외우면서 사용할 필요는 없고, 적어도 가능한 것과 불가능한 것을 구분할 정도의 지식만 가져도 된다고 본다.
'파이썬 > 파이썬-AI 기본' 카테고리의 다른 글
다중 선형 회귀와 회귀모델에 대한 평가 지표, 그리고 과적합과 과소적합 (0) | 2023.04.14 |
---|---|
re 패키지를 사용한 병렬처리 시의 주의사항 (0) | 2023.04.11 |
단순선형회귀모델을 알아야 복잡한 모델을 안다 (0) | 2023.02.25 |
왜 K-means 클러스터링을 사용하는가? (0) | 2023.02.18 |
변화를 고려하고 있을 때는 AB테스트를 생각해보자 (0) | 2023.02.18 |
Comments