[TCP School/자바스크립트] 정규 표현식 - 정규 표현식의 개념

2023. 4. 27. 12:35

정규 표현식(regular expression)은 문자열에서 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 검색 패턴이다.

이러한 검색 패턴은 모든 종류의 문자열 검색이나 교체 등의 작업에서 사용할 수 있다.


정규 표현식의 생성

자바스크립트에서 정규 표현식을 만드는 방법은 다음과 같다.

 

1. 정규 표현식 리터럴을 이용한 생성

2. RegExp 객체를 이용한 생성

 

자바스크립트에서 정규 표현식 리터럴은 다음 문법을 사용하여 표현한다.

/검색패턴/플래그

정규 표현식 리터럴은 슬래시(/) 기호로 시작하며, 슬래시(/) 기호로 끝난다.

또한, 필요에 따라 플래그를 추가하여 기본 검색 설정을 변경할 수도 있다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>regular expression</title>
</head>
<body>
    <h1>정규 표현식의 생성</h1>
    <p id="text"></p>

    <script>
        var regStr = /a+bc/;
        var regObj = new RegExp('a+bc');
        document.getElementById('text').innerHTML = regStr + '<br>' + regObj;
    </script>
</body>
</html>

 


단순한 패턴 검색

정규 표현식을 사용하여 단순한 패턴을 검색하고자 할 때는 찾고자 하는 문자열을 직접 나열하면 된다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>regular expression</title>
</head>
<body>
    <h1>단순한 패턴 검색</h1>
    <p id="text"></p>

    <script>
        var targetStr = '간장 공장 공장장은 강 공장장이고, 된장 공장 공장장은 장 공장장이다.';
        var strReg1 = /공장/;
        var strReg2 = /장공/;

        document.write(targetStr.search(strReg1) + '<br>');
        document.write(targetStr.search(strReg2));
    </script>
</body>
</html>

 

search() 메소드는 정규표현식 리터럴과 일치하는 문자열 중에서 첫 번째 문자열의 인덱스를 반환한다.

만약 일치하는 문자열이 없는 경우 -1을 반환한다.


플래그(flags)

정규 표현식을 생성할 때 플래그를 사용하여 기본 검색 설정을 할 수 있다.

이렇게 설정된 플래그는 나중에 추가되거나 삭제될 수 없다.

플래그 설명
i 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정
g 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정
m 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정
y 대상 문자열의 현재 위치부터 비교를 시작하도록 설정

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>flag</title>
</head>
<body>
    <h1>정규 표현식의 플래그</h1>
    <p id="text"></p>

    <script>
        var targetStr = 'bcabcAB';
        var strReg = /AB/;
        var strUsingFlag = /AB/i;

        document.getElementById('text').innerHTML = targetStr.search(strReg) + '<br>' + targetStr.search(strUsingFlag);
    </script>
</body>
</html>

 


TCP School의 강의 내용을 정리한 포스트입니다.

http://www.tcpschool.com/javascript/intro

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

BELATED ARTICLES

more