정규 표현식

이재영·2023년 3월 30일
0

HTML CSS JS

목록 보기
15/22
정규표현식을 만드는 이유 : 규칙을 가진 문자열을 찾기 위해서
//리터럴 방식
let reg1 = /a/;

//생성자 방식
let reg2 = new RegExp('a');

let str = "hello JavaScript Program...";

//search : str에서 시작하는 인덱스 번호 출력
let regExp_search=str.search(/JavaScript/);
console.log(regExp_search); // 6 출력된다.

// replace 첫번째 매개변수로 전달한 문자열을 찾아서
// 두번째 매개변수로 전달한 문자열로 바꿔준다.
let regExp_replace = str.replace(/JavaScript/, 'CSS');
console.log(regExp_replace); // hello CSS Program... 출력된다.

// test
// 정규식 패턴에 대한 문자열 검색 반환값은 true false로 반환한다.
let reg3 = /JavaScript/;
let reg4 = /JavaScript2/;
console.log(reg3.test(str)); // JavaScript 있기때문에 true 출력된다.
console.log(reg4.test(str)); // JavaScript2 없기때문에 false 출력된다.

정규식 표현 플래그 : 검색에 대한 설정

플래그는 정규식 뒤에 붙인다. 플래그는 여러개 같이 사용이 가능하다.

let str2 = 'The best program is \n JavaScript..'

// i : 대소문자를 구분안하고 비교할수 있다.
let temp1= /javascript/i; 

// match : 해당 문자열을 찾고 배열의 형태로 반환해준다.
// match 문자열을 찾지 못하면 null

console.log(str2.match(temp1)); //temp1 의 S가 소문자 s지만 플래그 i는 대소문자 구분안하고 비교하기 때문에 비교가 된다.

// g : 전체문자열을 정규식과 비교한다. 첫번쨰로 일치한 문자열이 있으면 비교를 중단한다.
let temp2 = /Javascript/g;
console.log(str2.match(temp2)); // ['JavaScript'] 라고 출력된다.

// m : 줄이 다른 문자열을 비교한다.
let temp3 = /JavaScript/m;
console.log(str2.match(temp3));

정규식의 패턴

[abc] : 대괄호 안에 있는 문자들을 찾는다.
[0-9] : 대괄호 사이의 숫자를 찾는다.
[x|y] : 문자중에서 "|" 분리된 문자중 하나를 찾는다.

let str3 = "The best program is JavaScript and HTML234..."

let temp5 = /[A-K]/ig;
console.log(str3.match(temp5));
//['e', 'b', 'e', 'a', 'a', 'a', 'c', 'a', 'd'] 가 출력된다.

let temp6 = /pr|x|an/ig;
console.log(str3.match(temp6));
//['pr', 'an'] 가 출력된다. x는 없으니 출력이 안된다.

정규식의 메타문자

메타문자는 숫자만 이거나 알파벳만 이거나 숫자를 제외하거나 이런등등 속성을 표현한다.
/*
 ^문자 : 정규식에서 시작문자를 찾는다. ^뒤에 있는문자로 시작하는 문자를 찾는다.
 문자$ : 정규식에서 끝나는 문자를 찾는다. $앞에 문자를 끝나느 문자열을 찾는다.
 \w : 모든 문자를 찾는다. 속하는 모든 문자를 찾는다.
 \W : 알파벳 대소문자, 숫자 _문자를 제외한 모든 문자를 찾는다.
 \d : 숫자를 찾는다
 \D : 숫자를 제외하고 찾는것( 모든 문자를 찾는다);
 \s : 공백문자를 찾는다.
 \S : 공백문자를 제외하고 찾는다.
 */


// 문자열 자체가 T로 시작하는지 확인을 하고 T가 맞으니까 맞는 문자열 반환
let temp7 = /^T/ig;
console.log(str3.match(temp7 // ['T'] 가 출력된다.

let temp8 = /\d/ig;
console.log(str3.match(temp8)); // ['2', '3', '4'] 가 출력된다.
profile
한걸음씩

0개의 댓글