[ Python ] Regex 유용한 팁들!
2019. 7. 20. 00:16ㆍ분석 Python/구현 및 자료
## [^aeiou] aeiou를 제외하고 한개
## [0-9] 중에 한개만 있을 때
## [0-9]+ 중에 한개이상
## (\D\d)+ 이것이 반복적으로 있을 때 ( ) 사용
## ^iteration_1(.*?).png$
시작은 interation_1 로 시작하고 끝은 .png 이미
re.search(^iteration_1([^"]+).png$ , text)
## iteration_2 로 시작하고 .png로 끝나면서 앞에 숫자가 0-5이면서 뒤에는 아무 숫자가 오게
re.search( ^iteration_2[0-5][0-9]+.png$ , text)
iteration_1 로 시작하고 .png로 끝나면서 중간에 숫자가 4개
re.search('^iteration_1\d{4}.png$' , text)
영어 한 글자, 숫자 한 글자, 떨어져있는거 제거! 특수기호 제거!
그리고 양 끝 공백 제거 그리고 중간에 공백 2개있는 것도 1개로 바꾸기
def remove(x) :
m = re.sub(r'(?:\b[0-9a-zA-Zㄱ-ㅎㅏ-ㅣ]\b|[?!\W]+)\s*', ' ', x).strip()
m = " ".join(m.split())
return m
remove("a ba aB 가나라다라 A AB 1 2 34 2313??!! 나 ㄷ ㄹ ㅁ 바 3번")
## 'ba aB 가나라다라 AB 34 2313 나 바 3번'
유용! 아래 블로그에서 가져온 것인데, 들어가서 다른것도 봐주시면 될 것 같다.
https://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221347960543
def clean_text(text):
pattern = '([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)'
text = re.sub(pattern=pattern, repl='', string=text)
print("E-mail제거 : " , text , "\n")
pattern = '(http|ftp|https)://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'
text = re.sub(pattern=pattern, repl='', string=text)
print("URL 제거 : ", text , "\n")
pattern = '([ㄱ-ㅎㅏ-ㅣ]+)'
text = re.sub(pattern=pattern, repl='', string=text)
print("한글 자음 모음 제거 : ", text , "\n")
pattern = '<[^>]*>'
text = re.sub(pattern=pattern, repl='', string=text)
print("태그 제거 : " , text , "\n")
pattern = r'\([^)]*\)'
text = re.sub(pattern=pattern, repl='', string=text)
print("괄호와 괄호안 글자 제거 : " , text , "\n")
pattern = '[^\w\s]'
text = re.sub(pattern=pattern, repl='', string=text)
print("특수기호 제거 : ", text , "\n" )
text = text.strip()
print("양 끝 공백 제거 : ", text , "\n" )
text = " ".join(text.split())
print("중간에 공백은 1개만 : ", text )
return text
text = '(abc_def) 좋은글! (이것도 지워조) http://1234.com 감사합니다. aaa@goggle.comㅋㅋ<H1>thank you</H1>'
clean_text(text)
## result
E-mail제거 : (abc_def) 좋은글! (이것도 지워조) http://1234.com 감사합니다. ㅋㅋ<H1>thank you</H1>
URL 제거 : (abc_def) 좋은글! (이것도 지워조) 감사합니다. ㅋㅋ<H1>thank you</H1>
한글 자음 모음 제거 : (abc_def) 좋은글! (이것도 지워조) 감사합니다. <H1>thank you</H1>
태그 제거 : (abc_def) 좋은글! (이것도 지워조) 감사합니다. thank you
괄호와 괄호안 글자 제거 : 좋은글! 감사합니다. thank you
특수기호 제거 : 좋은글 감사합니다 thank you
양 끝 공백 제거 : 좋은글 감사합니다 thank you
중간에 공백은 1개만 : 좋은글 감사합니다 thank you
'좋은글 감사합니다 thank you'
1. Email 제거
2. 태그제거
3. 한글 자음, 모음 제거
4. 괄호와 괄호 글자 제거 (추가)
5. 특수기호제거
중간에 없애는 것을 잘 몰랐는데, 1,2 ,4번을 잘 활용하면 전체를 통으로 없앨 수 있을 것 같다.
한번씩 보기!
https://www.tutorialspoint.com/python/python_reg_expressions
https://hamait.tistory.com/342
https://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221347960543
728x90
'분석 Python > 구현 및 자료' 카테고리의 다른 글
[ Python ] thread 공부해보기-1 (2) | 2019.08.11 |
---|---|
[ Python ] combination 조합 만들기 (0) | 2019.07.24 |
[ Python ] 모델 예측 TOP N번까지 값 뽑고 N번까지 Accuracy 계산하기 (0) | 2019.07.16 |
[ Python ] 영어 Text 전처리 및 유용한 Re 설명 자료 (0) | 2019.07.09 |
[ Python ] 메모리 누수 해결에 도움되는 패키지 소개 (0) | 2019.06.05 |