이해를 위한 기록들
드디어 정규 표현식
moonkey
2022. 12. 22. 13:18
시작하며
미루고 미루던 정규표현식을 시작했다. 사실 '정규표현식'이라는 이름과 그 형태에서 느껴지는 왠지 모르는 강력함 때문에 미뤘던 것인데 공부해보니 생각보다 어렵지 않아서 조금 허탈했다. dream coding의 ellie 가 정리해준 내용을 바탕으로 기록을 남긴다.
정규표현식
- 텍스트에서 원하는 패턴을 찾는 경우 사용한다.
- 기본적으로 / ... / 와 같이 슬래시 안에 원하는 패턴을 정의한다.
정규표현식 문법
표현 | 의미 |
| | 또는 / () 안에서 사용 |
() | 그룹 / 추출하길 원하는 부분을 그룹화해서 사용한다. |
[] | 문자셋 / 여러개의 문자를 포함하고 싶을 때 사용한다. |
[^] | 부정 문자셋 / 괄호 안에 문자들을 제외한 부분을 선택한다. |
(?:) | 그룹으로 사용할 경우 추출할 때 그룹인 부분을 생략해서 보여준다. |
예시
/a(b|c)/ | ab,ac 선택 |
/a[1234]/ | a1,a2,a3,a4 선택 / | 을 쓰는 것보다 더 효율적 |
/a(^c|d)/ | ad 선택, ac는 제외 |
표현 | 의미 |
? | 있거나 없거나 / 0 또는 1 선택 |
* | 없거나 있거나 많거나 / 0 또는 1 또는 그 이상 선택 |
+ | 있거나 많거나 / 1 또는 그 이상 선택 |
{n} | n번 반복될 경우 선택 |
{n,m} | 최소 n번 반복되고 최대 m번 반복될 경우 선택 |
{n,} | 최소 n번 반복되고 그 이상 반복될 경우 선택 |
예시
/ab?/ | a, ab 선택 |
/ab{3}/ | abbb 선택 |
/a+/ | a,aa,aaa,aaaa 선택 |
표현 | 의미 |
\b | 단어 경계 |
\B | 단어 경계 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
예시
/\bi.\b/ | hello my name is austin / 단어 사이 경계에 있는 'is' 선택 |
/\Bel\B/ | hello my name is austin / 단어 사이 경계에 있지 않는 'el' 선택 |
/^a/ | a,agawe,austin 선택 |
/e$/ | have, she 선택 |
표현 | 의미 |
\ | 특수 문자가 아닌 문자 선택 |
. | 모든 글자 (한글자만) 선택 |
\d | 모든 숫자 선택 |
\D | 모든 숫자가 아닌 문자 선택 |
\w | 모든 word 문자 선택 |
\W | 모든 word가 아닌 문자 선택 |
\s | 모든 공백 선택 |
\S | 모든 공백 빼고 선택 |
예시
/a./ | ab, a5 선택 |
/\da/ | 1a, 5a 선택 |
/\D10/ | a10, g10 선택 |
/\syoutube/ | ' youtube' 선택 |
아래사이트에서 정규 표현식이 잘 적용되는지 확인할 수 있다.
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com