๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ •๊ทœ์‹ ํ‘œํ˜„

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2024. 10. 27.

์ •์˜: 

์ •๊ทœ ํ‘œํ˜„์‹(regular expression, regex ๋˜๋Š” regexp)์€ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ํŒจํ„ด์„ ์ฐพ๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ผ์ข…์˜ ํŒจํ„ด ๋งค์นญ ๊ธฐ์ˆ ์ด๋‹ค. 

 

 

1. ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ

์ •๊ทœ ํ‘œํ˜„์‹์€ ๋ฌธ์ž์™€ ๋ฉ”ํƒ€ ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ฉ”ํƒ€ ๋ฌธ์ž๋Š” ํŠน์ • ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฌธ์ž์—ด์„ ํŒจํ„ดํ™” ํ•˜์—ฌ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน๋ณ„ํ•œ ๋ฌธ์ž์ด๋‹ค.

 

๋ฌธ์ž ํด๋ž˜์Šค

  • . : ์ž„์˜์˜ ํ•œ ๋ฌธ์ž (์ค„๋ฐ”๊ฟˆ ์ œ์™ธ)
  • [abc] : a, b, c ์ค‘ ํ•˜๋‚˜์˜ ๋ฌธ์ž์™€ ๋งค์นญ
  • [^abc] : a, b, c ๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž์™€ ๋งค์นญ
  • [a-z] : ์†Œ๋ฌธ์ž a์—์„œ z๊นŒ์ง€์˜ ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž์™€ ๋งค์นญ
  • \d : ์ˆซ์ž(0-9)์™€ ๋งค์นญ
  • \D : ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์™€ ๋งค์นญ
  • \w : ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋ฐ‘์ค„๊ณผ ๋งค์นญ (์ฆ‰, ๋‹จ์–ด ๋ฌธ์ž์˜ ์˜๋ฏธ)
  • \W : ๋‹จ์–ด ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์™€ ๋งค์นญ
  • \s : ๊ณต๋ฐฑ ๋ฌธ์ž(๋„์–ด์“ฐ๊ธฐ, ํƒฌ ๋“ฑ)์™€ ๋งค์นญ
  • \S : ๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž์™€ ๋งค์นญ

๊ฒฝ๊ณ„ ์ง€์ •์ž

  • ^ : ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘์„ ์˜๋ฏธ
  • $ : ๋ฌธ์ž์—ด์˜ ๋์„ ์˜๋ฏธ
  • \b : ๋‹จ์–ด์˜ ๊ฒฝ๊ณ„๋ฅผ ์˜๋ฏธ (ex. ๊ณต๋ฐฑ์ด๋‚˜ ๊ตฌ๋‘์ ๊ณผ ๋งž๋‹ฟ์€ ๋ถ€๋ถ„)
  • \B : ๋‹จ์–ด ๊ฒฝ๊ณ„์•„ ์•„๋‹Œ ๋ถ€๋ถ„์„ ์˜๋ฏธ

 

2. ์ˆ˜๋Ÿ‰์ž

์ˆ˜๋Ÿ‰์ž๋Š” ํŠน์ • ํŒจํ„ด์ด ๋‚˜ํƒ€๋‚˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ง€์ •ํ•œ๋‹ค.

  • * : 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต (ex a* -> a๊ฐ€ 0๋ฒˆ ์ด์ƒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ)
  • + : 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต (ex a+ -> a๊ฐ€ 1๋ฒˆ ์ด์ƒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ)
  • ? : 0ํšŒ ๋˜๋Š” 1ํšŒ๋งŒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ (ex a? -> a๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์—†์„ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒฝ์šฐ)
  • {n} : ์ •ํ™•ํžˆ nํšŒ ๋ฐ˜๋ณต (ex a{3} -> a๊ฐ€ ์ •ํ™•ํžˆ 3๋ฒˆ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ)
  • {n, } : nํšŒ ์ด์ƒ ๋ฐ˜๋ณต (ex -> a{2, } ๋Š” a๊ฐ€ 2๋ฒˆ ์ด์ƒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ)
  • {n, m} : nํšŒ ์ด์ƒ mํšŒ ์ดํ•˜ ๋ฐ˜๋ณต (ex -> a{2, 4}๋Š” a๊ฐ€ 2๋ฒˆ์—์„œ 4๋ฒˆ๊นŒ์ง€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ์šฐ)

 

3. ๊ทธ๋ฃน๊ณผ ์ฐธ์กฐ

๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๊ทœ์‹์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์บก์ฒ˜ํ•˜๊ฑฐ๋‚˜ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • (abc) : abc๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๋Š”๋‹ค.
  • (?:abc) : ์บก์ฒ˜ํ•˜์ง€ ์•Š๋Š” ๊ทธ๋ฃจ. abc์™€ ๋งค์นญ๋˜์ง€๋งŒ ๋ณ„๋„๋กœ ์บก์ฒ˜๋˜์ง€ ์•Š๋Š”๋‹ค.
  • \1 , \2  ๋“ฑ : ์ด์ „์— ์บก์ฒ˜๋œ ๊ทธ๋ฃน์„ ์ฐธ์กฐ (ex (a)(b)\1\2๋Š” abab์™€ ๋งค์นญ  

 

4. ์„ ํƒ์ž

  • | : ๋˜๋Š” (OR) ์—ฐ์‚ฐ์ž (ex a|b -> a ๋˜๋Š” b ์ค‘ ํ•˜๋‚˜์— ๋งค์นญ)

 

 

5. ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด ์˜ˆ์ œ

  • ์ด๋ฉ”์ผ: /^[\w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,6}$/
  • ์ „ํ™”๋ฒˆํ˜ธ: /^\d{3}-\d{3,4}-\d{4}$/
  • ์šฐํŽธ๋ฒˆํ˜ธ (5์ž๋ฆฌ ์ˆซ์ž): /^\d{5}$/
  • URL: /^(https?:\/\/)?(www\.)?[\w.-]+\.[a-zA-Z]{2,6}(\/\S*)?$/

๋Œ“๊ธ€