파이썬 프로그래밍 정규표현식 사용하는법

1. 정규표현식

 

복잡한 문자열을 패턴으로 정의하는 문자 표현 공식

 

특정 규칙에 만족하는 모든 문자열 집합을 추출함

 

 

전화번호는 3자,4자,4자의 일정한 규칙이 있어서 적절한 정규표현식을 사용하면 쉽게 추출할 수 있을 것

 

문법이 방대해서 필요할때마다 찾아보면서 사용

 

www.regexr.com

 

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

 

위 사이트인 정규식표현장에서 텍스트를 넣고 정규식을 사용해 찾아봄

 

해당 정규식의 의미도 설명해줘서 좋다

 

 

2. 기본적인 문법

 

[abc] 는 a나 b나 c 중 하나라도 들어가면 지정해줌

 

-는 범위를 지정함

 

[a-z]는 a부터 z 모든 단어, [a-zA-Z]는 영어 대소문자 전부 지정

 

[0-9]는 0부터 9까지, [a-zA-Z0-9]는 모든 영어 대소문자, 모든 숫자

 

+는 최소 1회이상 반복, [a-z]+는 영어 대소문자를 1회이상 반복한 문자열

 

[a-z]{n}은 n번 반복

 

[a-z]?는 1번만 반복

 

(http)는 정확히 http를 지정하며 [http]는 h,t,t,p중 적어도 1개 이상 들어간 것

 

(.)은 임의의 문자 하나를 지정, [.]은 .을 지정함

 

(.+)는 임의의 문자 하나가 1회이상 반복하여 하나로 묶어서 지정함

 

re모듈을 이용하면 해당 정규식 표현의 문자열을 추출할 수 있음

 

 

urllib.request.urlopen으로 해당 url의 html을 읽어옴

 

html.read()로 html의 텍스트를 모두 읽어옴

 

원하는 정보는 아이디

 

아이디는 영어대소문자 혹은 숫자가 앞에 있고 뒤에 ***

 

[A-Za-z0-9]+ 하면 영어대소문자, 숫자가 1회이상 반복

 

\는 앞의 특수문자를 지정함. \*은 *을 지정하는 것임

 

( )으로 하나로 묶어줌

 

그냥쓰면 특수문자 효과가 나타나니까 r-string을 이용하여 특수문자를 문자열로 지정한것임 #근데 굳이 안써도 되는것 같다

 

findall은 해당 정규식 패턴의 모든 문자열을 가져옴

 

search는 하나만

 

 

원하는 부분의 데이터를 가져오기 위해

 

정규식표현장에서 해당 데이터의 정규식 표현을 구하고 위와 같이 코드를 짠다

TAGS.

Comments