일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SQL
- CJ UNIT
- 정보처리산업기사
- 1과목
- 데이터베이스
- 파이썬
- python
- 알고리즘
- 공부일지
- 코딩봉사
- 시나공
- java
- 소프티어
- programmers
- 코틀린
- 백준 알고리즘
- BFS
- 문제풀이
- 자바
- MYSQL
- 스프링
- softeer
- C++
- kotlin
- 코딩교육봉사
- 백준알고리즘
- 프로그래머스
- 백준
- SW봉사
- 회고
- Today
- Total
JIE0025
정규표현식 개념, 패턴, 연습 본문
* 정규표현식이란?
특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.
문자열을 처리할 때 특정 조건의 문자를 '검색' 하거나 '치환'하는 과정을 매우 간편하게 처리할 수 있다.
정규표현식 연습은 다음 사이트에서 진행해 볼 수 있다.
* 정규표현식 패턴
다음은 정규표현식의 패턴들을 정리한 것이다.
* 정규표현식 연습
작성자 개인의 연습이므로 특정 주제에 대해 100%에 가까운 정답이라고 확신할 수는 없습니다. Test String의 문자 형식만을 고려하여 연습하였습니다.
1. 전화번호
01[016789]\D?\d{3,4}\D?\d{4}
01 : 아무런 기호가 없는 일반 문자열이므로 문자열의 시작이 01로 시작됨을 의미한다.
[016789] : [ ] 안에 있는 문자들을 모두 찾아주므로 01 다음에 오는 0, 1, 6, 7, 8, 9를 찾는다.
\D : \d는 digit 즉 0-9의 숫자를 의미하는데 대문자로 표기시 원래 의미를 제외한 나머지를 의미한다. 따라서 숫자를 제외하고 어떤 기호가 와도 연결 기호로 인식한다.
? : ?는 0개~ 1개가 존재함을 의미한다. \D뒤에 배치함으로서 \D를 한개만 인식하도록 한다.
\d : digit, 0~9를 의미한다.
{3,4} : { }안의 범위로 수량을 제한한다. \d 뒤에 배치함으로서 최소 3개, 최대 4개의 digit문자를 읽을 수 있다.
2. 날짜
(20)?\d{2}\D?\d{2}\D?\d{2}\D?
(20)? : 2020년으로 표기하거나 뒤이 두 글자만 표시할 수 있기 때문에 앞의 두글자인 20을 그룹으로 묶어 0개부터 1개 있는것을 체크한다.
\d{2} : 0-9의 digit가 2개 연속적으로 오는 것을 체크한다.
\D? : 0~9가아닌 것이 0개 혹은 1개있는 것을 체크한다.
3. Email
[\da-zA-Z]([-_.]?[\da-zA-Z])*@[\da-zA-Z]([-_.]?[\da-zA-Z])*
[\da-zA-Z] : 숫자(digit)이거나 영어소문자 a to z 이거나, 영어대문자 A to Z를 찾는다.
[-_.]? : [ ] 안에 있는 문자들중 하나를 찾는다. ?를 사용함으로서 1개만 인식한다.
@ : 아무런 기호가 없는 일반 문자열이므로 그냥 @ 자체로 인식하면 된다.
( )* : 괄호로 그루핑 된 것들이 0개부터 여러개 존재하는 것을 체크한다.
[\da-zA-Z]([-_.]?[\da-zA-Z])* : 숫자,영어 대소문자로 시작하여 기호한개와 숫자영어대소문자 그룹이 계속 이어질 경우에 이렇게 작성할 수 있다.
배운 정규표현식을 갖고 웹 크롤링이나
회원가입 할 때와 같이 입력 규칙을 만들어 보면 좋은 실습이 될 것이다.
공부한 날짜 : 20.01.14 ~ 20.01.15
실습한 날짜 : 20.01.16
참고자료
- 생활코딩 정규표현식 https://opentutorials.org/course/909/5142
- zvon tutorials http://zvon.org/comp/r/tut-Regexp.html#Pages~Contents
'기타 학습' 카테고리의 다른 글
[사물인터넷] 사물인터넷(IoT)의 구조 심화 (0) | 2021.04.16 |
---|---|
[사물인터넷] 사물인터넷(IoT)의 구조 개요 (0) | 2021.04.13 |
Windows 10 : Docker 이미지 불러오고 사용하기 (0) | 2021.04.09 |
chocolatey 설치, 윈도우10에서 sudo,make 명령어 사용하기 (0) | 2021.04.08 |
Windows10 Docker 도커 설치하기 (2) | 2021.04.08 |