비전공자 코딩 배우기 _11주차 정규표현식
정규표현식
리터럴 패턴
👉🏻 정규표현식 규칙을 슬래시(/)로 감싸 사용한다.
let pattern = /a/;
// 'a 를 찾는다'고 컴퓨터에 명령을 내리는 것이다.
// 찾고 싶은 a를 pattern 이라는 변수에 담았으므로 이 변수를 이용하여 a를 찾을 수 있다.
생성자 함수 호출 패턴
👉🏻 RegExp 객체의 생성자 함수를 호출하여 사용한다.
let pattern = new RegExp('a');
// new를 이용해서 정규 표현식 객체를 생성하고,
// 리터럴 패턴과 동일하게 'a를 찾는다'고 컴퓨터에 명령을 내리는 것이다.
🔎 RegExp 객체의 메소드
💡 exec()
execution의 줄임말로, 원하는 정보를 얻을 때 사용한다.
검색의 대상이 찾고자 하는 문자열에 대한 정보를 가지고 있으면 배열로 반환하고 없으면 null을 반환한다.
let pattern = /a/; // 찾고자 하는 문자열
pattern.exec('abcdefg') // 검색하려는 대상을 exec 메소드의 첫 번째 인자로 전달한다.
// 즉, 'abcdefg'가 'a'를 포함하고 있는지 확인한다.
// 'a'가 포함되어 있으므로, ['a']를 반환한다.
// 만약 pattern에 /z/를 한다면, 'abcdefg'에 'z'가 없으므로 null을 반환하게 된다.
💡 test()
찾고 싶은 문자열이 대상 안에 있는지 여부를 boolean 타입으로 리턴한다.
let pattern = /a/;
pattern.test('abcdefg');
// 'abcdefg'가 'a'를 포함하고 있으므로 true를 리턴한다.
🔎 String 객체의 메소드
💡 match()
RegExp.exec()와 비슷한 기능을 하며, 정규 표현식을 인자로 받아 주어진 문자열과 일치된 결과를 배열로 반환한다. 일치하지 않으면 null을 반환한다.
let pattern = /a/;
let str = 'abcdefg';
str.match(pattern);
// str 안에 pattern이 포함되어 있으므로 ['a']를 반환한다.
💡 replace()
문자열에서 찾고자 하는 대상을 검색하여 치환하려는 문자열로 변경 후 변경된 값을 리턴한다.
첫 번째 인자로는 정규표현식을, 두 번째 인자로는 치환하려는 문자열을 입력한다.
let pattern = /a/;
let str = 'abcdefg';
str.replace(pattern, 'b');
// str 안에서 pattern을 검색한 후 'b'로 변경하여 그 결과를 리턴한다.
// str = 'bbcdefg'로 리턴된다.
💡 split()
주어진 인자를 구분자로 삼아, 문자열을 부분 문자열로 나누어 그 결과를 배열로 리턴한다.
"123,456,789".split(",") // ["123", "456", "789"]
"123-456-789".split("-") // ["123", "456", "789"]
💡 search()
정규표현식을 인자로 받아 가장 처음 매칭되는 부분 문자열의 위치를 반환한다.
매칭되는 문자열이 없다면 -1을 반환한다.
"JavaScript".search(/script/); // -1 대소문자가 다르면 다른 것으로 간주된다.
"JavaScript".search(/Script/); // 4
"abcdefg".serch(/cd/); // 2
flag
정규표현식은 플래그를 설정해 줄 수 있으며, 플래그는 추가적인 검색 옵션의 역할을 한다.
이 플래그들은 각자 혹은 함께 사용하는 것이 모두 가능하며, 순서에 구분이 없다.
🚩 i
i를 붙이면 대소문자를 구분하지 않는다.
let withi = /a/i;
let withouti = /a/;
"ABCDEFG".match(withi); // ['A']
"ABCDEFG".match(withouti); // null
🚩 g
global의 약자로, g를 붙이면 검색된 모든 결과를 리턴한다.
let withg = /a/g;
let withoutg = /a/;
"abcdefga".match(withg); // ['a', 'a']
"abcdefga".match(withoutg); // ['a'] g 가 없으면 첫 번째 검색 결과만 반환된다.
🚩 m
m을 붙이면 다중행을 검색한다.
let str = `1st : all
2nd : apple
3rd : april`;
str.match(/a/gm)
// 3개의 행을 검색하여 모든 a를 반환한다.
// ['a', 'a', 'a']
str.match(/a/m)
// m은 다중행을 검색하게 해 주지만, g를 빼고 검색하면 검색 대상을 찾는 순간 검색을 멈추기 때문에
// 첫 행의 ['a'] 만 리턴한다.
Author And Source
이 문제에 관하여(비전공자 코딩 배우기 _11주차 정규표현식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dms873/비전공자-코딩-배우기-11주차-정규표현식저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)