[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
'공부 > JavaScript' 카테고리의 다른 글
[TCP School/자바스크립트] 정규 표현식 - RegExp 객체 (0) | 2023.04.27 |
---|---|
[TCP School/자바스크립트] 정규 표현식 - 정규 표현식의 응용 (0) | 2023.04.27 |
[TCP School/자바스크립트] 예외 처리 - Strict 모드 (0) | 2023.04.27 |
[TCP School/자바스크립트] 예외 처리 (0) | 2023.04.27 |
[TCP School/자바스크립트] 이벤트 - 이벤트 리스너 호출 (0) | 2023.04.26 |