๐ŸŒ  ๋ฌธ์ œ

์นด์นด์˜ค์— ์ž…์‚ฌํ•œ ์‹ ์ž… ๊ฐœ๋ฐœ์ž ๋„ค์˜ค๋Š” "์นด์นด์˜ค๊ณ„์ •๊ฐœ๋ฐœํŒ€"์— ๋ฐฐ์น˜๋˜์–ด, ์นด์นด์˜ค ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜๋Š” ์œ ์ €๋“ค์˜ ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—…๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋„ค์˜ค"์—๊ฒŒ ์ฃผ์–ด์ง„ ์ฒซ ์—…๋ฌด๋Š” ์ƒˆ๋กœ ๊ฐ€์ž…ํ•˜๋Š” ์œ ์ €๋“ค์ด ์นด์นด์˜ค ์•„์ด๋”” ๊ทœ์น™์— ๋งž์ง€ ์•Š๋Š” ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ž…๋ ฅ๋œ ์•„์ด๋””์™€ ์œ ์‚ฌํ•˜๋ฉด์„œ ๊ทœ์น™์— ๋งž๋Š” ์•„์ด๋””๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ์นด์นด์˜ค ์•„์ด๋””์˜ ๊ทœ์น™์ž…๋‹ˆ๋‹ค.

์•„์ด๋””์˜ ๊ธธ์ด๋Š” 3์ž ์ด์ƒ 15์ž ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋นผ๊ธฐ(-), ๋ฐ‘์ค„(_), ๋งˆ์นจํ‘œ(.) ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹จ, ๋งˆ์นจํ‘œ(.)๋Š” ์ฒ˜์Œ๊ณผ ๋์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋˜ํ•œ ์—ฐ์†์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
"๋„ค์˜ค"๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 7๋‹จ๊ณ„์˜ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ†ตํ•ด ์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ ์นด์นด์˜ค ์•„์ด๋”” ๊ทœ์น™์— ๋งž๋Š” ์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ๊ทœ์น™์— ๋งž์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ทœ์น™์— ๋งž๋Š” ์ƒˆ๋กœ์šด ์•„์ด๋””๋ฅผ ์ถ”์ฒœํ•ด ์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ new_id ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด,

1๋‹จ๊ณ„ new_id์˜ ๋ชจ๋“  ๋Œ€๋ฌธ์ž๋ฅผ ๋Œ€์‘๋˜๋Š” ์†Œ๋ฌธ์ž๋กœ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
2๋‹จ๊ณ„ new_id์—์„œ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋นผ๊ธฐ(-), ๋ฐ‘์ค„(_), ๋งˆ์นจํ‘œ(.)๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
3๋‹จ๊ณ„ new_id์—์„œ ๋งˆ์นจํ‘œ(.)๊ฐ€ 2๋ฒˆ ์ด์ƒ ์—ฐ์†๋œ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ๋งˆ์นจํ‘œ(.)๋กœ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
4๋‹จ๊ณ„ new_id์—์„œ ๋งˆ์นจํ‘œ(.)๊ฐ€ ์ฒ˜์Œ์ด๋‚˜ ๋์— ์œ„์น˜ํ•œ๋‹ค๋ฉด ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
5๋‹จ๊ณ„ new_id๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, new_id์— "a"๋ฅผ ๋Œ€์ž…ํ•ฉ๋‹ˆ๋‹ค.
6๋‹จ๊ณ„ new_id์˜ ๊ธธ์ด๊ฐ€ 16์ž ์ด์ƒ์ด๋ฉด, new_id์˜ ์ฒซ 15๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋“ค์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
     ๋งŒ์•ฝ ์ œ๊ฑฐ ํ›„ ๋งˆ์นจํ‘œ(.)๊ฐ€ new_id์˜ ๋์— ์œ„์น˜ํ•œ๋‹ค๋ฉด ๋์— ์œ„์น˜ํ•œ ๋งˆ์นจํ‘œ(.) ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
7๋‹จ๊ณ„ new_id์˜ ๊ธธ์ด๊ฐ€ 2์ž ์ดํ•˜๋ผ๋ฉด, new_id์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ new_id์˜ ๊ธธ์ด๊ฐ€ 3์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์„œ ๋์— ๋ถ™์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, new_id ๊ฐ’์ด "...!@BaT#*..y.abcdefghijklm" ๋ผ๋ฉด, ์œ„ 7๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ณ  ๋‚˜๋ฉด new_id๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

1๋‹จ๊ณ„ ๋Œ€๋ฌธ์ž 'B'์™€ 'T'๊ฐ€ ์†Œ๋ฌธ์ž 'b'์™€ 't'๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.
"...!@BaT#*..y.abcdefghijklm" → "...!@bat#*..y.abcdefghijklm"

2๋‹จ๊ณ„ '!', '@', '#', '*' ๋ฌธ์ž๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
"...!@bat#*..y.abcdefghijklm" → "...bat..y.abcdefghijklm"

3๋‹จ๊ณ„ '...'์™€ '..' ๊ฐ€ '.'๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค.
"...bat..y.abcdefghijklm" → ".bat.y.abcdefghijklm"

4๋‹จ๊ณ„ ์•„์ด๋””์˜ ์ฒ˜์Œ์— ์œ„์น˜ํ•œ '.'๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
".bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"

5๋‹จ๊ณ„ ์•„์ด๋””๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋ณ€ํ™”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
"bat.y.abcdefghijklm" → "bat.y.abcdefghijklm"

6๋‹จ๊ณ„ ์•„์ด๋””์˜ ๊ธธ์ด๊ฐ€ 16์ž ์ด์ƒ์ด๋ฏ€๋กœ, ์ฒ˜์Œ 15์ž๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฌธ์ž๋“ค์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
"bat.y.abcdefghijklm" → "bat.y.abcdefghi"

7๋‹จ๊ณ„ ์•„์ด๋””์˜ ๊ธธ์ด๊ฐ€ 2์ž ์ดํ•˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋ณ€ํ™”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
"bat.y.abcdefghi" → "bat.y.abcdefghi"

๋”ฐ๋ผ์„œ ์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ new_id๊ฐ€ "...!@BaT#*..y.abcdefghijklm"์ผ ๋•Œ, ๋„ค์˜ค์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ถ”์ฒœํ•˜๋Š” ์ƒˆ๋กœ์šด ์•„์ด๋””๋Š” "bat.y.abcdefghi" ์ž…๋‹ˆ๋‹ค.

 

์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” new_id๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, "๋„ค์˜ค"๊ฐ€ ์„ค๊ณ„ํ•œ 7๋‹จ๊ณ„์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ฑฐ์นœ ํ›„์˜ ์ถ”์ฒœ ์•„์ด๋””๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • new_id๋Š” ๊ธธ์ด 1 ์ด์ƒ 1,000 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • new_id๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž, ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ํŠน์ˆ˜๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • new_id์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜๋ฌธ์ž๋Š” -_.~!@#$%^&*()=+[{]}:?,<>/ ๋กœ ํ•œ์ •๋ฉ๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

no new_id result
์˜ˆ1 "...!@BaT#*..y.abcdefghijklm" "bat.y.abcdefghi"
์˜ˆ2 "z-+.^." "z--"
์˜ˆ3 "=.=" "aaa"
์˜ˆ4 "123_.def" "123_.def"
์˜ˆ5 "abcdefghijklmn.p" "abcdefghijklmn"

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1
๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2
7๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋Š” ๋™์•ˆ new_id๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
2๋‹จ๊ณ„ "z-+.^." → "z-.."
3๋‹จ๊ณ„ "z-.." → "z-."
4๋‹จ๊ณ„ "z-." → "z-"
5๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
6๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
7๋‹จ๊ณ„ "z-" → "z--"

์ž…์ถœ๋ ฅ ์˜ˆ #3
7๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋Š” ๋™์•ˆ new_id๊ฐ€ ๋ณ€ํ™”ํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
2๋‹จ๊ณ„ "=.=" → "."
3๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
4๋‹จ๊ณ„ "." → "" (new_id๊ฐ€ ๋นˆ ๋ฌธ์ž์—ด์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)
5๋‹จ๊ณ„ "" → "a"
6๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
7๋‹จ๊ณ„ "a" → "aaa"

์ž…์ถœ๋ ฅ ์˜ˆ #4
1๋‹จ๊ณ„์—์„œ 7๋‹จ๊ณ„๊นŒ์ง€ ๊ฑฐ์น˜๋Š” ๋™์•ˆ new_id("123_.def")๋Š” ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, new_id๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์นด์นด์˜ค์˜ ์•„์ด๋”” ๊ทœ์น™์— ๋งž์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #5
1๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
2๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
3๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
4๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
5๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.
6๋‹จ๊ณ„ "abcdefghijklmn.p" → "abcdefghijklmn." → "abcdefghijklmn"
7๋‹จ๊ณ„ ๋ณ€ํ™” ์—†์Šต๋‹ˆ๋‹ค.


๐Ÿงž ํ’€์ด

function solution(new_id) {
    let filterList = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "-", "_", "."];
    
    let answer = new_id;
    
    // 1๋‹จ๊ณ„: ์†Œ๋ฌธ์ž ์น˜ํ™˜
    answer = answer.toLowerCase();
    
    // 2๋‹จ๊ณ„: ๊ธฐํƒ€ ๋ฌธ์ž ์ œ๊ฑฐ
    answer = answer.split("").filter((e) => filterList.includes(e)).join("");
    
    // 3๋‹จ๊ณ„: ํ•˜๋‚˜์˜ ๋งˆ์นจํ‘œ๋กœ ์น˜ํ™˜
    let result = [];
    for (let i = 0; i < answer.length; i++) {
        if (!(answer[i] === "." && result[result.length - 1] === ".")) {
            result.push(answer[i]);
        }
    }
    answer = result.join("");
    
    // 4๋‹จ๊ณ„: ์ฒ˜์Œ, ๋์˜ ๋งˆ์นจํ‘œ ์ œ๊ฑฐ
    if (answer.startsWith(".")) {
        answer = answer.slice(1);
    }
    if (answer.endsWith(".")) {
        answer = answer.slice(0, -1);
    }
    
    // 5๋‹จ๊ณ„: ๋นˆ ๋ฌธ์ž์—ด์ผ ๊ฒฝ์šฐ, "a" ์ถ”๊ฐ€
    if (answer.length === 0) {
        answer = "a";
    }
    
    // 6๋‹จ๊ณ„: ๋ฌธ์ž ๊ธธ์ด ์ œํ•œ ๋ฐ ๋งˆ์ง€๋ง‰ ๋งˆ์นจํ‘œ ์ œ๊ฑฐ
    if (answer.length >= 16) {
        answer = answer.slice(0, 15);
        if (answer.endsWith(".")) {
            answer = answer.slice(0, -1);
        }
    }
    
    // 7๋‹จ๊ณ„. ๋ฌธ์ž ๊ธธ์ด 3์œผ๋กœ ์ œํ•œ
    while (answer.length < 3) {
        answer += answer[answer.length - 1];
    }
    
    return answer;
}

๐Ÿ’ก ์•Œ๊ฒŒ ๋œ ์ 

  • ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉด, ๋ฌธ์ œ๋ฅผ ๋ถ„๋ช… ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด์ง€๋งŒ, ์ •๊ทœํ‘œํ˜„์‹์ด ๊ธฐ์–ต์ด ๋‚˜์ง€ ์•Š์•„์„œ, ๋งŒ์•ฝ ์‹ค์ „์—์„œ๋„ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ญ๋Ÿ‰์œผ๋กœ ํ’€๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค.
  • Array.includes(): ๋ฐฐ์—ด์— ํŠน์ • ๋ฌธ์ž์—ด์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ํ•จ์ˆ˜์ด๋‹ค.
  • ๋Œ€์‹ , Array.indexOf()๋ฅผ ํ™œ์šฉํ•˜์—ฌ, -1์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํŒŒ์ด์ฌ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐฐ์—ด์˜ ์Œ์ˆ˜ ์ธ๋ฑ์Šค (array[-1])๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • String.startsWith()์™€ String.endsWith()๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ๋งจ ์•ž๊ณผ ๋์˜ ๋ฌธ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฌธ์ž์—ด์„ ์ž๋ฅด๋Š” ๊ฒƒ์€ slice()์™€ substring()์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • slice()๋Š” ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ, substring()์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋ฌธ์ž์—ด์— ๋ฌธ์ž์—ด์„ ๋”ํ•˜๋Š” ๊ฒƒ์€ '+' ์—ฐ์‚ฐ์ž๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿงฉ ์ •๊ทœํ‘œํ˜„์‹

function solution(new_id) {
    const answer = new_id
        .toLowerCase() // 1
        .replace(/[^\w-_.]/g, '') // 2
        .replace(/\.+/g, '.') // 3
        .replace(/^\.|\.$/g, '') // 4
        .replace(/^$/, 'a') // 5
        .slice(0, 15).replace(/\.$/, ''); // 6
    const len = answer.length;
    return len > 2 ? answer : answer + answer.charAt(len - 1).repeat(3 - len);
}

 

 

  • ๋ฌธ์ž์™€ ์ˆซ์ž
    • ๋‹จ์ผ ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: a, b, 1, 2
  • ๋ฉ”ํƒ€๋ฌธ์ž
    • ํŠน์ • ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ํŠน๋ณ„ํ•œ ๋ฌธ์ž๋“ค์ž…๋‹ˆ๋‹ค.
    • .: ๋ชจ๋“  ๋‹จ์ผ ๋ฌธ์ž
    • ^: ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘
    • $: ๋ฌธ์ž์—ด์˜ ๋
    • *: 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • +: 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • ?: 0ํšŒ ๋˜๋Š” 1ํšŒ ๋ฐ˜๋ณต
    • \: ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋กœ, ๋ฉ”ํƒ€๋ฌธ์ž ์ž์ฒด๋ฅผ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
    • []: ๋ฌธ์ž ํด๋ž˜์Šค. ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ์žˆ๋Š” ๋ฌธ์ž ์ค‘ ํ•˜๋‚˜์™€ ์ผ์น˜
    • |: OR ์—ฐ์‚ฐ์ž
    • (): ๊ทธ๋ฃนํ™”. ํ•˜์œ„ ํ‘œํ˜„์‹์— ๋Œ€ํ•ด ์บก์ฒ˜
  • ๋ฌธ์ž ํด๋ž˜์Šค
    • [abc]: 'a', 'b', 'c' ์ค‘ ํ•˜๋‚˜
    • [^abc]: 'a', 'b', 'c'๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž
    • [a-z]: 'a'๋ถ€ํ„ฐ 'z'๊นŒ์ง€์˜ ๋ชจ๋“  ์†Œ๋ฌธ์ž
    • [A-Z]: 'A'๋ถ€ํ„ฐ 'Z'๊นŒ์ง€์˜ ๋ชจ๋“  ๋Œ€๋ฌธ์ž
    • [0-9]: ๋ชจ๋“  ์ˆซ์ž
  • ์ˆ˜๋Ÿ‰์ž
    • *: 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • +: 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • ?: 0ํšŒ ๋˜๋Š” 1ํšŒ
    • {n}: ์ •ํ™•ํžˆ nํšŒ ๋ฐ˜๋ณต
    • {n,}: nํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • {n,m}: nํšŒ ์ด์ƒ mํšŒ ์ดํ•˜ ๋ฐ˜๋ณต
  • ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด
    • \d: ์ˆซ์ž (0-9์™€ ๋™์ผ)
    • \D: ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ
    • \w: ๋‹จ์–ด ๋ฌธ์ž (์•ŒํŒŒ๋ฒณ + ์ˆซ์ž + ๋ฐ‘์ค„)
    • \W: ๋‹จ์–ด ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ
    • \s: ๊ณต๋ฐฑ ๋ฌธ์ž (์ŠคํŽ˜์ด์Šค, ํƒญ ๋“ฑ)
    • \S: ๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ

 

  • ๊ธฐ๋ณธ ๋ฌธ์ž ์ฐพ๊ธฐ
    • cat: 'cat'๊ณผ ์ผ์น˜
    • 123: '123'๊ณผ ์ผ์น˜
  • ๋ฌธ์ž ํด๋ž˜์Šค ์‚ฌ์šฉ
    • [abc]: 'a', 'b', 'c' ์ค‘ ํ•˜๋‚˜
    • [a-z]: ๋ชจ๋“  ์†Œ๋ฌธ์ž
    • [0-9]: ๋ชจ๋“  ์ˆซ์ž
  • ๋ฉ”ํƒ€๋ฌธ์ž ์‚ฌ์šฉ
    • .: ์ž„์˜์˜ ํ•œ ๋ฌธ์ž (๊ฐœํ–‰ ์ œ์™ธ)
    • ^a: 'a'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด
    • z$: 'z'๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด
  • ์ˆ˜๋Ÿ‰์ž ์‚ฌ์šฉ
    • a*: 'a'๊ฐ€ 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • a+: 'a'๊ฐ€ 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • a?: 'a'๊ฐ€ 0ํšŒ ๋˜๋Š” 1ํšŒ ์กด์žฌ
    • a{2}: 'a'๊ฐ€ ์ •ํ™•ํžˆ 2ํšŒ ๋ฐ˜๋ณต
    • a{2,}: 'a'๊ฐ€ 2ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
    • a{2,4}: 'a'๊ฐ€ 2ํšŒ ์ด์ƒ 4ํšŒ ์ดํ•˜ ๋ฐ˜๋ณต
  • ๋ณต์žกํ•œ ํŒจํ„ด
    • \d{3}-\d{2}-\d{4}: ํ˜•์‹ '123-45-6789'์˜ ์ˆซ์ž
    • (abc|def): 'abc' ๋˜๋Š” 'def'

 

 

+ Recent posts