20241016 정규표현식
문자열에서 a로 시작해서 b로 끝나는 패턴 찾기
문자열에서 aXb나 aXXXb와 같은 패턴을 찾고 싶을 수 있다.
다음과 같이 정규표현식
과 match()
함수를 사용하면 가능하다.
str.match(/a(.*?)b/);
여기서 .는 모든 문자, *는 0개 이상, ?는 가능한 적은 수의 문자를 매칭하도록 한다.
추가로 예를 들어 //로 시작하고 \n으로 끝나는 패턴을 모두 찾고 싶다면,
while(str.match(/^\/\//g)) {
const match = str.match(/\/\/(.*?)\\n/);
str = str.substr(match[0].length);
}
여러개의 구분자로 문자열 나누는 방법
정규표현식
과 join()
함수를 활용해서 할 수 있다.
여러개의 구분자가 무엇인지 알고 있는 상태에서 문자열을 나누고 싶다면, |
(or 연산자)를 활용한다.
str.split(/:|~|-/);
위와 같이 작성하면 :
, ~
, -
세가지를 기준으로 문자열을 구분할 수 있다.
만약 여러개의 구분자가 무엇인지 모르고 구분자 배열이 존재한다면, 정규표현식과 join() 함수를 활용한다.
new RegExp(`[${구분자배열.join('')}]`);
join(‘‘)는 배열의 요소를 공백없이 결합하고,
join()은 쉼표가 default 값이므로 ,를 사용해서 배열의 요소를 결합한다.
예를 들어, [’;’, ‘:’]라는 배열이 있을 때,
join(‘‘)의 결과는 ‘;:’
join()의 결과는 ‘;,:’ 가 되는 것.
따라서 이때는 join(‘‘)으로 배열의 요소를 결합해야 원치 않는 결과가 나오는 것을 피할 수 있다.
[]는 괄호 안의 문자들 중 하나를 의미한다. or 처리 묵음 이라고 생각하면 됨.
${} 안에는 변수나 표현식을 넣을 수 있다.
Leave a comment