1. 정규표현식
복잡한 문자열을 패턴으로 정의하는 문자 표현 공식
특정 규칙에 만족하는 모든 문자열 집합을 추출함

전화번호는 3자,4자,4자의 일정한 규칙이 있어서 적절한 정규표현식을 사용하면 쉽게 추출할 수 있을 것
문법이 방대해서 필요할때마다 찾아보면서 사용
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는 하나만

원하는 부분의 데이터를 가져오기 위해
정규식표현장에서 해당 데이터의 정규식 표현을 구하고 위와 같이 코드를 짠다
'프로그래밍 > Python' 카테고리의 다른 글
파이썬의 지역변수와 전역변수 (0) | 2022.02.17 |
---|---|
프로그래밍을 한다면 꼭 알아야하는 파일형식 csv, html, xml, json (0) | 2022.02.14 |
파이썬에서 파일을 처리하는 방법 (0) | 2022.02.09 |
파이썬(python)의 defaultdict, ordereddict, namedtuple (0) | 2022.02.01 |
코딩테스트에서 유용한 list의 split과 join (0) | 2022.02.01 |