Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리챌린지
- Github
- PRIMARY KEY
- R
- Jupyter notebook
- 제주도여행
- 독후감
- digital marketing
- 제주도
- SQL
- GenAI
- 영국여행
- 스토어드 프로시저
- 런던
- RStudio
- 클러스터형인덱스
- 맛집
- 책리뷰
- PRML
- 혼공S
- 유럽여행
- 제주2주살이
- 에이바우트
- 오블완
- 김호연작가
- Linux
- 디지털마케팅
- 보조인덱스
- 스플라인
- 혼자공부하는SQL
Archives
- Today
- Total
Soy Library
[프로그래밍] 정규표현식(Regular Expression) 본문
정규표현식(regex)이란?
프로그래밍에서 문자열을 다룰 때, 우리가 원하는 패턴을 찾거나, 해당 문자를 다른 문자열로 변환 등에 사용할 수 있는 일종의 형식 언어를 말한다. 1950년 Stephen Cole Kleene라는 수학자에 의해 만들어졌고, unix 계열에서 텍스트 파일을 처리하고 프로세스 하는데 많이 사용되었지만 현재는 많은 프로그래밍 언어에서 정규 표현식 기능을 제공한다.
정규 표현식은 다음과 같이 구분된다.
/ | 표현식 | / | i |
패턴구분자 시작 | 찾을 문자열의 패턴 | 패턴구분자 끝 | 패턴변경자(flag) |
/(slash)를 이용해서 정규표현식이다- 라는 것을 표현. + 내부에는 표현식 + flag(어떤 옵션을 이용해서 검색을 할 건지)
※ flag는 보통 global과 multiline을 사용한다. global은 매칭되는다수의 결과값을 저장하는 기억할 수 있는 옵션이고, multiline은 주어진 문자열에 줄바꿈이 있을 경우, 여러 줄로 취급하여 검사하는 옵션이다.
아래 사이트에서 정규표현식을 연습할 수 있다.
Groups and ranges
- | 또는
- () 그룹
- (?:) 찾지만 기억하지는 않음. - 그룹으로 묶기 싫을 때는 앞에 ?:를 적어주면 그룹이 표시되지 않음.
- [] 문자셋, 괄호 안의 어떤 문자든
a-f에서 -(hyphen)은 범위를 나타냄. 즉, a부터 f까지
아래 왼쪽의 경우는 a부터 z까지, A부터 Z까지, 0부터 9까지 어떠한 문자든 찾는 표현식이다.
대괄호 옆에 ^ 표시는 not의 표시로, 해당 문자가 아닌 모든 문자를 찾을 때 사용할 수 있다.
Quantifiers
- ? 없거나 있거나 (zero or one)
- * 없거나 있거나 많거나 (zero or more)
- + 하나 또는 많이 (one or more)
- {#} #번 반복
- {min, } 최소
- {min, max} 최소, 최대
Boundary-type
- \b 단어경계
- \B 단어 경계가 아님
- ^ 문장의 시작
- $ 문장의 끝
Character classes
- . 어떤 글자 (줄바꿈 문자 제외)
- \ 특수 문자가 아닌 문자
dot문자 하나만 쓰면 모든 문자가 다 선택된다. character dot 만을 선택하고 싶을 때는 backslash를 이용하여 \.을 입력하면 된다.
- \d digit 숫자
- \D digit 숫자 아님
- \w word 문자
- \W word 문자 아님
- \s space 공백
- \s space 공백 아님
실습
전화번호만 선택하기
이메일 선택하기
유튜브 주소에서 아이디만을 가져오기
Reference
- 나무위키 - 정규표현식 https://namu.wiki/w/%EC%A0%95%EA%B7%9C%20%ED%91%9C%ED%98%84%EC%8B%9D?from=%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D
- "정규표현식, 더이상 미루지 말자" - 드림코딩 by 엘리 https://www.youtube.com/watch?v=t3M6toIflyQ
'Study > Programming' 카테고리의 다른 글
[CS] Ch1. 창의적 사고에서 시작되는 SW 프로그래밍 (1) | 2024.11.26 |
---|