함번보고 두번보고
[regex] 철이 없었죠..정규식을 모르고 코딩하고있다는거 자체가.. 본문
요즘 너무 재밌으신 개그맨 최해준님 유행어 한번 빌려 포스팅을 시작..ㅎ
코딩을 할 때 종종 부딪히던 regex...언젠간 한번 정리해야지 항상 생각하다가 즐겨보는 유투브 채널인
"드림코딩 by 엘리"님의 영상을 보고 고무가 되어 이 강의로 바탕으로 regex를 정리해 보았다...
1. 정규표현식??
regex는 regular expression의 약자로 정규표현식이라 불리며 문자열에서 특정한 패턴을 찾을 수 있도록 도와준다.
2. 문법
정규표현식은 아래와 같이 사용할 수 있다. 그 중 우리가 주의깊게 살펴봐야하는 바로 pattern 이다.
문법 | slashes | pattern | slashes | flag |
의미 | 정규표현식 시작 | 찾고자하는 패턴 | 정규표현식 종료 | 검색옵션 |
예시 | / | regex? | / | i |
3. ! 패턴작성방법
제일 중요한 패턴작성 방법은 크게 4가지 그룹으로 나뉘어 살펴볼 수 있다.
1) Groups and ranges
Chrater | 뜻 |
| | 또는 |
( ) | 그룹 |
[ ] | 문자셋, 괄호안의 어떤 문자든 |
[^] | 부정 문자셋, 괄호안의 어떤 문자가 아닐 때 |
(?:) | 찾지만 기억하지는 않음 |
2) Quantifiers
Chracter | 뜻 |
? | 없거나 있거나 (zero or one) |
* | 없거나 있거나 많거나 (zero or more) |
+ | 하나 또는 많이 (one or more) |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소, 그리고 최대 |
3) Boundary-type
Chracter | 뜻 |
\b | 단어 경계 |
\B | 단어 경계가 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
4) Character classes
Chracter | 뜻 |
\ | 특수 문자가 아닌 문자 |
. | 어떤 글자 (줄바꿈 문자 제외) |
\d | digit 숫자 |
\D | digit 숫자 아님 |
\w | word 문자 |
\W | word 문자 아님 |
\s | space 공백 |
\S | space 공백 아님 |
4. Flag
Chracter | 뜻 |
g | global, 매칭되는 모든 문자 검색 |
i | case insenstive, 대소문자 구분 안함 |
m | multiline, 여러문장 |
s | single line, 한줄 |
u | unicode, 유니코드로 검색 |
y | sticky |
5. 연습
나만 그런지 모르겠지만 처음 저것만 보고는 잘 이해하기가 힘들다..꼭...여기서 한번 연습해보시길..
1) regexone.com/
RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs
Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or even documents. And while there is a lot of theory behind formal languages, the following lessons and examples will explore the more prac
regexone.com
2) regexr.com/5ml92
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com
'Front-End > Javascript' 카테고리의 다른 글
[javascript] Class vs Object.. 무슨 차이인고? (0) | 2021.03.05 |
---|---|
[Javascript] Map객체의 Value 최댓값 구하기.(by reduce()) (0) | 2021.02.28 |
[Javascript] /\d/.test(c) 숫자판별하기! (0) | 2021.02.28 |
[Javascript] Array.Map((v) => ???) 배열 요소 변환하기! (0) | 2020.09.25 |