본문 바로가기

Python_Beginer/Study

HRD 수업>파이썬을 이용한 자동화 스크립트 - Ch11

반응형

Ch11. 정규표현식 1

사전 Quiz1>정규식은 텍스트를 검색할 때 ctrl + F를 좀 더 발전시킨 형태라고 할 수 있다.
1. O
2. X
해설. 글자 자체를 가지고 찾는게 아니라 패턴으로 검색하는 방식이다.


사전 Qiiz2>정규식의 문법은 모든언어에서 동일하다.
1. O
2. X
해설. 정규 표현식 지원은 자바와 파이썬을 포함한 여러 프로그래밍 언어의 표준 라이브러리의 일부가 되어으며 

펄과 ECMA스크립트에서는 기본문법으로 통합되었다.


- 정규식(Regular Expreesion)
1. 텍스트를 검색할 때 Ctrl+F로 찾는 것을 조금 더 발전 시킨 형태
2. 글자 자체를 가지고 찾는 게 아니라 패턴이라는 것을 사용함
3. 오피스 프로그램은 찾기(바꾸기) 기능에서 정규식을 지원함.


- 정규식 사용 사례
1. 입력 유효성 체크(Form Validation)
2. 텍스트에서 특정 부분을 추출
3. 특정 텍스트 바꾸기
4. 큰 텍스트를 작게 쪼개기


- 정규식 문법 배우기


- / .. / 패턴을 표기


- 전화번호 패턴 : \d\d\d-\d\d\d\d-\d\d\d\d


- \d : 0부터 9까지 숫자


- \w : 숫자와 문자(대 소문자 포함), _(언더스코어)


- \s : 공백문자


- . : \n을 제외한 모든 문자


- [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]

1. [] 속에 글자들은 순서에 관계없이 한 글자를 표현
2. 다른 표현 : [0][1][01689]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]


- [0-9]{3}-[0-9]{4}-[0-9]{4}


- ? : 0 또는 1번 발생


- * : 0 또는 여러 번 발생


- + : 1번 이상 발생


- {n} : n번 발생


- 이메일 주소 패턴

1. [a-zA-Z0-9._%+-]+ : 사용자이름
2. @ : @ 심벌
3. [a-zA-Z0-9.-]+ : 도메인명
4. \.(com|net|co.kr) : dot something(|(파이프) : 다중매칭)


- match() : 원하는 문자열 패턴으로 소스 문자열과 일치하는지 비교
1. result = re.match('hello', 'hello world' # 'hello'는 패턴이고 'hello world'는 확일할 소스 문자열이다.
2. result 결과가 None이면 매칭이 실패했다는 의미


- 패턴을 미리 컴파일 할 수 있다.


- 패턴과 소스를 비교하는 다른 방법
1. search() : 첫 번째 일치하는 객체를 반환
2. findall() : 모두 일치하는 문자열을 리스트로 반환
3. split() : 패턴에 맞게 소스를 쪼갠 후 문자열 조각의 리스트를 반환
4. sub() : 바꾸기 기능, 패턴과 일치하는 소스의 부분을 대체인자로 변경


- Quiz 1> 다음 중 정규식 사용 사례가 아닌것은? 4
1. 입력 유효성 체크
2. 텍스트에서 특정부분 추출
3. 특정 텍스트 바꾸기
4. 작은 텍스트를 큰 텍스트로 결합하기
해설. 큰 텍스트를 작은 텍스트로 쪼개기(콤마나 점으로 구분해서 문장 쪼개기)


- Quiz 2> 다음 정규식 중 전화번호를 표현한 것이 아닌것은?
1. \d\d\d-\d\d\d\d-\d\d\d\d
2. \w\w\w-\w\w\w\w-\w\w\w\w
3. [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
4. [0-9]{3}-[0-9]{4}-[0-9]{4}
해설. \w는 숫자와 문자를 모두 포함하기 때문에 전화번호로 적절하지 않다.


- Quiz 3> 파이썬 정규식 관련 설명 중 잘못된 것은?
1. re 모듈을 임포트 해서 사용한다.
2 패턴을 미리 컴파일해서 사용할 수 있다. - re.compile()
3. 패턴과 소스를 비교하는 방법으로 search() 와 findall() 등이 있다.
4. 바꾸기 기능은 사용할 수 없다.
해설. sub() 함수를 사용해서 바꾸기 기능을 사용할 수 있다.

반응형