๐Ÿ”ŽRegex ํ…Œ์Šคํ„ฐ

์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด๊ณผ ํ…Œ์ŠคํŠธํ•  ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋งค์นญ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜์„ธ์š”.

/ /

๋งค์นญ ๊ฒฐ๊ณผ

0๊ฑด
๋งค์นญ๋œ ํ…์ŠคํŠธ๊ฐ€ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ •๊ทœํ‘œํ˜„์‹ ๋„๊ตฌ ํ™œ์šฉ ๊ฐ€์ด๋“œ

์ •๊ทœํ‘œํ˜„์‹(Regular Expression)์€ ๋ฐฉ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์†์—์„œ ํŠน์ • ํŒจํ„ด์„ ์ฐพ์•„๋‚ด๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•˜๊ณ , ๋ณต์žกํ•œ ํ…์ŠคํŠธ๋ฅผ ์น˜ํ™˜ํ•˜๋Š” ๋ฐ ์—†์–ด์„œ๋Š” ์•ˆ ๋  ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋‚˜ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€์—๊ฒŒ ์ •๊ทœ์‹์€ ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ์ด์ƒ์˜ ์˜๋ฏธ๋ฅผ ์ง€๋‹™๋‹ˆ๋‹ค. ์ด๋ฉ”์ผ ์ฃผ์†Œ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ์ˆ˜์ฒœ ์ค„์˜ ๋กœ๊ทธ ํŒŒ์ผ์—์„œ ํŠน์ • ์˜ค๋ฅ˜ ์ฝ”๋“œ๋งŒ์„ ์ถ”์ถœํ•˜๋Š” ์ž‘์—… ๋“ฑ์€ ์ •๊ทœํ‘œํ˜„์‹์ด ์—†๋‹ค๋ฉด ๋งค์šฐ ๊ณ ๋œ ์ž‘์—…์ด ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ •๊ทœ์‹ ๋ฌธ๋ฒ•์€ ๋งค์šฐ ์ง๊ด€์ ์ด์ง€ ์•Š๊ณ  ๋ณต์žกํ•˜์—ฌ, ํ•œ ๋ฒˆ์— ์™„๋ฒฝํ•œ ํŒจํ„ด์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋ณธ ํ…Œ์Šคํ„ฐ๋Š” ์ด๋Ÿฌํ•œ ๋ถˆํŽธ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ„ด ์ˆ˜์ •๊ณผ ๋™์‹œ์— ๋งค์นญ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์‹œ๊ฐ„ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ๋œ ์ •๊ทœ์‹์˜ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ์ฆ‰์‹œ ๊ฐ์ง€ํ•˜์—ฌ ์•Œ๋ ค์คŒ์œผ๋กœ์จ ํŒจํ„ด ์ตœ์ ํ™” ์‹œ๊ฐ„์„ ๋Œ€ํญ ๋‹จ์ถ•ํ•ด ์ค๋‹ˆ๋‹ค. ํŠนํžˆ ์ „์—ญ ๊ฒ€์ƒ‰(g), ๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œ(i), ๋‹ค์ค‘ํ–‰ ๊ฒ€์ƒ‰(m)๊ณผ ๊ฐ™์€ ํ”Œ๋ž˜๊ทธ ์„ค์ •์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋งค์นญ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ์‚ฌ์ดํŠธ ํฌ๋กค๋ง ํ›„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ •๋ฐ€ํ•˜๊ฒŒ ๊ณจ๋ผ๋‚ด๊ณ  ์‹ถ์„ ๋•Œ ๋ณธ ๋„๊ตฌ์—์„œ ๋ฏธ๋ฆฌ ํŒจํ„ด์„ ๋‹ค๋“ฌ์–ด ์ ์šฉํ•˜๋ฉด ์‹ค์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‹จ๊ณ„์—์„œ์˜ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ์‹ค์ œ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๋‚˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์™ธ๋ถ€ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ํฐ ๋ถ€๋‹ด์ž…๋‹ˆ๋‹ค. ์‹ฌํ”Œ์šฐ๋””๋Š” ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ์ž…๋ ฅ์„ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๊ธฐ ๋‚ด์—์„œ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ปฌ ์—ฐ์‚ฐ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ •๊ทœ์‹ ์ž‘์„ฑ์„ ์œ„ํ•œ ๊ณ ๋„์˜ ์ง‘์ค‘์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๊ฑฑ์ • ์—†์ด ๋„๊ตฌ์˜ ๋ณธ์งˆ์  ๊ธฐ๋Šฅ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๋งค์นญ ํ™•์ธ์„ ๋„˜์–ด ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„์˜ ๋ณด์กฐ ๋„๊ตฌ๋กœ์„œ ๋ณธ Regex ํ…Œ์Šคํ„ฐ๊ฐ€ ํฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ (FAQ)

Q: ์ •๊ทœ์‹ ๋ฌธ๋ฒ•์ด ํ‹€๋ฆฌ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

A: ํŒจํ„ด์ด๋‚˜ ํ”Œ๋ž˜๊ทธ์— ๋ฌธ๋ฒ•์  ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋งค์นญ ๊ฒฐ๊ณผ ์˜์—ญ์— ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์ˆ˜์ •ํ•ด์•ผ ํ•  ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q: ์ „์—ญ(g) ํ”Œ๋ž˜๊ทธ๋ฅผ ๋„ฃ์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

A: g ํ”Œ๋ž˜๊ทธ๊ฐ€ ์—†์œผ๋ฉด ํ…์ŠคํŠธ ์ „์ฒด์—์„œ ์ฒซ ๋ฒˆ์งธ๋กœ ๋งค์นญ๋˜๋Š” ํ•ญ๋ชฉ ํ•˜๋‚˜๋งŒ ์ฐพ๊ณ  ๊ฒ€์ƒ‰์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ผ์น˜ ํ•ญ๋ชฉ์„ ์ฐพ์œผ๋ ค๋ฉด ํ”Œ๋ž˜๊ทธ ์นธ์— 'g'๋ฅผ ํฌํ•จํ•˜์„ธ์š”.

Q: ๋Œ€๊ด„ํ˜ธ[]์™€ ์†Œ๊ด„ํ˜ธ()์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

A: ๋Œ€๊ด„ํ˜ธ๋Š” ๊ทธ์ค‘ 'ํ•˜๋‚˜'์˜ ๋ฌธ์ž๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฌธ์ž์…‹(Character Set)์ด๋ฉฐ, ์†Œ๊ด„ํ˜ธ๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ž๋ฅผ ๋ฌถ๊ฑฐ๋‚˜ ๋‚˜์ค‘์— ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ฃนํ™”(Grouping)ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.