
프로그래머스 코딩테스트 문제를 풀다가
정규식 표현..?개념을 알게되었다
주로 회원가입할때 아이디,비밀번호,전화번호를 형식에 맞게 정규식 표현하는 정도로만 알고 있었는데 이렇게 직접적으로 살펴본건 처음이다..
정규식
/regexr/i
시작 / 패턴 / 종료 / i=플래그
[참고]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_expressions
"문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환
"정규표현식"에 매칭되는 항목을 "대체문자열"로 변환
"문자열"을 "정규표현식"에 매칭되는 항목으로 쪼개어 배열로 반환
"문자열"이 "정규표현식"과 매칭되면 true, 아니면 false반환
match메서드와 유사(단, 무조건 첫번째 매칭 결과만 반환)
예시 코드로 살펴보자면!
const regex = /windy/; // windy 라는 단어가 있는지 필터링
// "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false반환
regex.test("Today's weather is windy!"); // true
// "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환
const text = "Tomorrow will be windy";
text.match(regex); // ['windy']
// "정규표현식"에 매칭되는 항목을 "대체문자열"로 변환
txt.replace(regex, "sunny"); // 'Tomorrow will be sunny '
정규식 플래그(flag)
// `n`가 두 개 포함된 문자열
const str = "winnde";
// `g` 플래그 없이는 최초에 발견된 문자만 반환
str.match(/n/); // ["n", index: 2, input: "winnde", groups: undefined]
// `g` 플래그가 있으면 모든 결과가 배열로 반환
str.match(/n/g); // (2) ["n", "n"]
기호를 기준으로 이루어진다!
예를 들어 0,3이 들어간 문자열을 찾아야 한다면
'/[03]/' <-이런식으로 나타내면 된다 !