[Education]/[Python] 파이썬을 이용한 자동화 스크립트

[Python] 11. 파이썬 정규 표현식(1) - 정규식 문법, 전화번호 패턴, 이메일 패턴, 텍스트 패턴 검색

starterr 2024. 12. 3. 18:00

A. 정규식 : Regular Expression

1. 텍스트를 검색할 때 Ctrl+F 로 찾는 것을 조금 더 발전시킨 형태

- 글자 자체를 가지고 찾는 게 아니라 패턴이라는 것을 사용함

- 오피스 프로그램은 찾기(바꾸기) 기능에서 정규식을 지원함

 

2. 정규식 사용 사례

- 입력 유효성 체크(Form Validation) : 이메일 주소가 맞는지 아닌지

- 텍스트에서 특정 부분을 추출 : 우편번호 추출

- 특정 텍스트 바꾸기 : 계란 -> 달걀

- 큰 텍스트를 작게 쪼개기 : 콤마나 점으로 구분해서 문장 쪼개기

 

3. 정규식 문법 배우기

- / ... / 속에 패턴을 표기

 

4. 패턴으로 찾기 데모 : 다음 세 개의 패턴으로 정규식을 배우자

- 010-3456-0123 : 전화번호 패턴 나타내기

- soongon@gmal.com : 이메일 주소 패턴 나타내기

 

5. 전화번호 패턴

\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]
- [] 속에 글자들은 순서에 관계없이 한 글자를 표현
- 다른 표현 : [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번 발생 (zero or one)
- * : 0 또는 여러 번 발생 (zero or many)
- + : 1번 이상 발생 (one or many)
- {n} : n번 발

 

6. 이메일 주소 패턴

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

7. 연습문제 : 웹 주소 패턴 표현하기
- \b(https?:\/\/)?([\w.]+){1,2}(\.[\w]{2,4}){1,2}\b
§ / 문자를 표현할 때 : 이스케이프를 사용 (\/)
§ /b : 바운더리를 표현
§ ( ) : 괄호를 사용하여 그룹을 적절히 활용
§ . (dot) 문자 : 와일드카드, \n 문자 제외하고 모든 문자에 대응
§ 실제로 . 을 표시하고 싶으면 \. 으로 사용
§ ^ : 시작을 표시
§ $ : 끝을 표시

 

 

B. 정규식을 사용한 텍스트 패턴 검색

 

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

 

2. 패턴을 미리 컴파일 할 수 있다.
- phonenum_regex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')

 

3. 패턴과 소스를 비교하는 다른 방법

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

 

 

[Tool] Miro(미로) workspace for innovation - 실시간 UX협업 도구 ( 온라인 화이트보드 플랫폼 )

 

[Tool] Miro(미로) workspace for innovation - 실시간 UX협업 도구 ( 온라인 화이트보드 플랫폼 )

오늘날과 같이 급변하고 끊임없이 진화하는 비즈니스 환경에서는 경쟁 우위를 유지하기 위해 올바른 도구와 기술을 갖추는 것이 중요합니다. Miro는 협업을 개선하고 프로세스를 간소화하며 창

infoofit.tistory.com

 

[Fortinet] Fortigate scripts 사용 방법

 

[Fortinet] Fortigate scripts 사용 방법

A. Fortigate scripts 사용 방법 많은 양의 객체를 만들 때 사용하면 편리한 기능사용 방법 확인해 보기 - 먼저 Fortigate GUI > 오른쪽 상단 login 계정 > Configuration > Scripts - Scripts 화면으로 넘어와서

infoofit.tistory.com

 

[보안] 01. 악성코드 정의, 악성코드 종류, 감염 위치, 네이밍 스키마

 

[보안] 01. 악성코드 정의, 악성코드 종류, 감염 위치, 네이밍 스키마

A. 악성코드 정의 1) 이론적 정의 - 악성코드는 악성 소프트웨어 (Malicious Software)의 줄임말 -> 컴퓨터 작동을 방해 -> 민감한 정보를 수집 -> 개인 컴퓨터에 불법 접근 - 일반적으로 악성코드는

infoofit.tistory.com

 

반응형