두가지 방법
let regexp = new RegExp('pattern', 'flags'); // /pattern/flags
let regexp = /pattern/flags
\ : \뒤에 일반 문자가 오면(\b) 특수한 기능이 적용되고
\뒤에 특수기능이 있는 문자가 오면(\*) 기능이 없는 문자처럼 취급*
*, {0,}: 앞의 표현식이 0회이상 반복되는 부분과 대응 즉 앞의 표현식이 문자열에 없어도 공백반환
let str= 'addddddd'
str.match(/d*/) // [''] 공백 배열 반환.
문자열의 처음(a)는 d가 0회 포함 되어있는 개념으로 보아 공백 반환.
str.match(/ad*/ // ['addddddd']
그냥 안쓰는게 좋은듯하다..;
+, {1,} : 앞의 표현식이 1회 이상 반복되는 부분과 대응
abc전체를 매칭하고 싶을 때 (?:abc)+
? {0,1}: 앞의표현식이 1회 있으면 대응 없으면(0회) 공백 반환
'angel'.match(/e?l/) // el반환
^(캐럿기호): 텍스트의 시작 위치에 대응
$: 텍스트의 마지막 위치에 대응
. : 줄바꿈 문자(\n)를 제외한 모든 문자와 일치. 공백포함
[\s\S], [^]: 빈 문자열을 제외한 모든 문자와 일치
x(?=y) : x뒤에 y가 있을 때만 x를 대응
let str = 'Jack JackSprat'
str.match(/Jack(?=Sprat)/) 뒤에 Sprat이 붙은 Jack만 반환.
x(?!y): x뒤에 y가 없는 경우에만 x 대응
|: 또는
{n}: 앞의 표현식이 n번 나타나는 부분에 대응
{n,m}: 앞문자가 최소 n개 이상일 때 최대 m개까지 대응
[xyz] : 괄호안의 어떤 문자와도 일치하는 경우 대응
괄호안에서 특수문자 사용시 ^, \b를 제외하고 인식 안됨
[^xyz]: 괄호안의 어떤 문자와도 일치하는 않는 문자와 대응
[\b]: 백스페이스에 대응
\b: 단어 경계 즉 다른 단어(숫자 포함)가 앞이나 뒤에 등장하지 않는 공백위치에 대응
*\s와 다르게 공백을 반환하지는 않음.
[a-d], [1-4] : [abcd], [1234]
\t : 탭에 대응
\n: 공백에 대응
\d, [0-9]:숫자에 대응하는 정규식
\s(space): 스페이스 , 탭, 줄바꿈 등을 포함하는 공백기호 대응
한번의 공백이 몇칸이던 match 메서드 배열에는 한칸의 공백반환
ex) let str = 1 d 3
str.match(/\s/g) : [' ', ' ']
\s가 아닌 스페이스바를 삽입해도 똑같이 작동
str.match(/ /g) : [' ', ' ']
\w(word), [A-Za-z0-9_]: 라틴 문자, 숫자, 밑줄(_)에 대응
\D, [^0-9]: 숫자가 아닌 문자를 찾음.
\S: 공백이 아닌 문자를 찾음.
\W, [^A-Za-z0-9_]: 숫자, 단어가 아닌 비라틴 문자, 공백 등을 찾음.
i : 패턴을 찾을 때 대소문자 구분없이 찾음.
g : 패턴과 일치하는 값을 모두 찾음.
s: /./이 줄바꿈을 포함 모든 문자와 일치하게 함
m: 다중 행 모드 활성화
let str = 'string'
let regEx = /pattern/flags
str.match(regEx) : 정규표현식에 대응하는 문자열을 배열로 반환
regEx.test(str) : 정규표현식에 대응하는 문자열을 포함하는 경우 true 반환
str.replace(regEx,'newString') : 정규표현식에 대응하는 문자열들을 새로운 문자열로 대체
^(캐럿기호): 텍스트의 시작위치에 대응
다중 행모드 m에서는 각행의 시작위치에 대응
$: 텍스트의 마지막 위치에 대응
다중 행모드 m에서는 각행의 마지막위치에 대응
let str = `1st place: Winnie
2nd place: Piglet
3rd place: Eeyore`;
alert( str.match(/^\d/gm) ); // [1, 2, 3]
각 행의 첫 시작이 숫자인 모든 값 반환
let str = `Winnie: 1
Piglet: 2
Eeyore: 3`;
alert( str.match(/\d$/gm) ); // [1,2,3]
각 행의 마지막이 숫자인 모든 값 반환
https://ko.javascript.info/
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%EC%A0%95%EA%B7%9C%EC%8B%9D