function replaceNumber(str) {
const pattern = /[205]/g; // 정규표현식 패턴: 2, 0, 5 중 하나를 찾음
return str.replace(pattern, (match) => {
if (match === "2") return "0"; // 2를 0으로 치환
if (match === "0") return "5"; // 0을 5로 치환
if (match === "5") return "2"; // 5를 2로 치환
});
}
const str = "Hello, World!";
const regex = /.{2}(.?)/g;
const result = str.replace(regex, "$1"); // "l,Wrd”
.{2}(.?)에서 .?(.)는 두 개의 그룹을 지정하고 있다.
첫 번째 그룹은 .와 ?로 구성되어 있으며, 임의의 한 문자를 매칭한다.
두 번째 그룹은 .로 구성되어 있으며, 하나의 문자를 매칭한다.
즉, 이 정규표현식은 임의의 한 문자 뒤에 나오는 하나의 문자를 추출한다.
replace 메소드를 사용하여 정규표현식과 일치하는 문자열을 추출한다..은 임의의 한 문자를 매치하며, 공백 문자도 포함한다.\S를 사용하면 된다. 따라서 임의의 문자 뒤에 공백이 아닌 문자를 매치시키려면 .{n-1}\S 를 쓰면 n-1개의 임의의 문자 뒤에 공백이 아닌 문자를 매치한다는 뜻이 된다. const regex = new RegExp(.{${code-1}}(\\S)?, 'g');
.{code-1}은 코드의 배수 번째 글자 앞까지의 임의의 문자열을 매치하고, (\S)는 공백이 아닌 문자를 그룹화하여 추출한다.. g 플래그는 전역 검색을 수행하도록 설정한다.
\S는 공백이 아닌 모든 문자를 의미하는 특수 문자이다.
(\\S?)는 공백이 아닌 문자가 0개 또는 1개 포함된 문자열을 찾는다는 뜻이다.