๋ฐฑ์—”๋“œ(Back-End) ๊ฐœ๋ฐœ/Java

์ •๊ทœํ‘œํ˜„์‹(Regex)

rabo93 2025. 3. 1. 00:59
์ •๊ทœ ํ‘œํ˜„์‹์ด๋ž€?

- ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํŒจํ„ด ๊ธฐ๋ฐ˜ ๋ฌธ์ž์—ด(์‹)
- ์ •๊ทœํ‘œํ˜„์‹์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•  ๋ฌธ์ž์—ด ํŒจํ„ด์„ ์ง€์ •ํ•˜๊ณ 
  ํŠน์ • ํด๋ž˜์Šค ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •๊ทœํ‘œํ˜„์‹์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌ
- ex) ํŒจ์Šค์›Œ๋“œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋‚˜ ์ „ํ™”๋ฒˆํ˜ธor์ด๋ฉ”์ผ ์–‘์‹ ๊ฒ€์‚ฌ ๋“ฑ(Validation Check ๋ผ๊ณ  ํ•จ)
- ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋„คํŠธ์›Œํฌ, ์›น ๋“ฑ์—์„œ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ‘œ์ค€ ํ‘œํ˜„ ๋ฐฉ๋ฒ•
  (ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด๋„ ์ž๋ฐ” ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅ)

 

์ •๊ทœํ‘œํ˜„์‹์— ์‚ฌ์šฉ๋˜๋Š” ํŒจํ„ด ๋ฌธ์ž = ๋ฉ”ํƒ€ ๋ฌธ์ž(Meta Character)

=> x ๋˜๋Š” y ๋ผ๋Š” ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•ž ๋˜๋Š” ๋’ค์— ๊ธฐํ˜ธ๋ฅผ ๋ถ™์—ฌ ํŒจํ„ด ์ง€์ •
[ ์ผ๋ฐ˜์ ์ธ ๊ธฐํ˜ธ ]
1. ^x : x๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด
   ex) "x", "xa", "xxx", "xab"... => ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด(ํŒจํ„ด ๊ทœ์น™์— ๋ถ€ํ•ฉ๋จ)
       "ya", "yx", "yyy", "y"...  => ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด(ํŒจํ„ด ๊ทœ์น™์— ๋ถ€ํ•ฉ๋˜์ง€ ์•Š์Œ)
   ex2) x ๊ฐ€ ์ˆซ์ž๋ผ๋Š” ์˜๋ฏธ์ผ ๋•Œ : "์ˆซ์žadmin"(O), "์ˆซ์ž123"(O), "admin123"(X)
         x ๊ฐ€ ํ•œ๊ธ€์ด๋ผ๋Š” ์˜๋ฏธ์ผ ๋•Œ : "ํ•œ๊ธ€admin"(O), "๊ฐ€123"(O), "123๋‹ค"(X)

2. x$ : x๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด
   ex) "x", "ax", "xxx", "abx"... => ์‚ฌ์šฉ ๊ฐ€๋Šฅ
       "xy", "yyy", "xab"...      => ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ
------------------------------------------------------------------------------
๋งŒ์•ฝ, x ๋กœ ์‹œ์ž‘ํ•ด์„œ x๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด์ผ ๊ฒฝ์šฐ(= x๋งŒ ์กด์žฌํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ)
=> ^x$ : "x"(O), "xy"(X), "x1"(X), "ax"(X)
ex) x ๊ฐ€ ์ˆซ์ž๋ผ๋Š” ์˜๋ฏธ์ผ ๊ฒฝ์šฐ(^์ˆซ์ž$) ์ˆซ์ž 1๊ฐœ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋Š” ํ•ด๋‹น X
--------------------------------------------------------------------------
3. .x : x ์•ž์— 1๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜๋Š” ๋ฌธ์ž์—ด
   ex) "ax", "bx", "abxy"... => ์‚ฌ์šฉ ๊ฐ€๋Šฅ(abxy ์˜ ๊ฒฝ์šฐ x ์•ž์— 1๊ฐœ ๋ฌธ์ž๋งŒ ์žˆ์œผ๋ฉด OK)
       "xa", "xb"...         => ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ
   ex2) ๋งŒ์•ฝ, ^.x$ ์ผ ๊ฒฝ์šฐ๋Š” ๋ฐ˜๋“œ์‹œ 2๊ฐœ์˜ ๋ฌธ์ž์ด๋ฉฐ, ์•„๋ฌด ๋ฌธ์ž ๋’ค์— x ๋กœ ๋๋‚˜๋ฉด OK
         => ๋”ฐ๋ผ์„œ, "ax", "bx" ๊ฐ™์€ ๋ฌธ์ž์—ด๋งŒ ํ•ด๋‹น๋จ

4. x+ : x๊ฐ€ 1๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด
   ex) "x", "xx", "xxx"... => ๋ฐ˜๋“œ์‹œ x ๊ฐ€ 1๊ฐœ๋ผ๋„ ์กด์žฌํ•ด์•ผํ•จ

5. x* : x๊ฐ€ 0๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด
   ex) "", "a", "x", "xxx"... => ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ฌด ๋ฌธ์ž์—ด์ด๋‚˜ ๋ชจ๋‘ ํ•ด๋‹นํ•จ)
   => ์ฃผ๋กœ ๋‹ค๋ฅธ ํŒจํ„ด๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•จ


6. x? : x๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋Š” ๋ฌธ์ž์—ด
   ex) "x", "", "a"... => ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ฌด ๋ฌธ์ž์—ด์ด๋‚˜ ๋ชจ๋‘ ํ•ด๋‹นํ•จ)
   => ์ฃผ๋กœ ๋‹ค๋ฅธ ํŒจํ„ด๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•จ

7. x|y : x ๋˜๋Š” y ๊ฐ€ ํฌํ•จ๋˜๋Š” ๋ฌธ์ž์—ด
   ex) "x", "y", "xy"... => ์‚ฌ์šฉ ๊ฐ€๋Šฅ
------------------------------------------------------------------------------
์˜ˆ์‹œ)
1) xa?y$
=> ์‹œ์ž‘๋˜๋Š” ๋ฌธ์ž๋Š” ์ƒ๊ด€์—†์œผ๋‚˜, ๋ฌธ์ž์—ด ๋‚ด์—์„œ x๊ฐ€ ์•ž์— ์˜ค๊ณ 
   x ๋’ค์˜ ๋ฌธ์ž๋กœ a๊ฐ€ ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , ์•ˆ ์˜ฌ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ
   ๋ฐ˜๋“œ์‹œ ๋งˆ์ง€๋ง‰์€ y๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด
ex) "xy"(O) => x ๋กœ ์‹œ์ž‘ํ•˜๊ณ  a๋Š” ์—†์ง€๋งŒ y๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด
    "xay"(O) => x ๋กœ ์‹œ์ž‘ํ•˜๊ณ  x ๋‹ค์Œ ๋ฌธ์ž๊ฐ€ a์ด๊ณ , y๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด
    "hixy"(O) => x ์•ž์˜ ๋ฌธ์ž์—ด ๋ฌด๊ด€, x ๋’ค์˜ ๋ฌธ์ž๊ฐ€ y๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด
    "hixzy"(X) => x ์•ž์˜ ๋ฌธ์ž์—ด ๋ฌด๊ด€, x ๋’ค์˜ ๋ฌธ์ž๊ฐ€ a ๋˜๋Š” y ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
    "xyz"(X) => x ๋’ค์˜ ๋ฌธ์ž๊ฐ€ a ๋˜๋Š” y ์ด์ง€๋งŒ, y๋กœ ๋๋‚˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€


2) x|a?y$
=> ์‹œ์ž‘๋˜๋Š” ๋ฌธ์ž๋Š” ์ƒ๊ด€์—†์œผ๋‚˜, ๋ฌธ์ž์—ด์— x๊ฐ€ ํฌํ•จ๋˜๊ฑฐ๋‚˜ ๋˜๋Š” a?y$ ๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์ž์—ด
ex) "xy"(O), "hixy"(O), "hixay"(O), "ay1"(X)

๊ด„ํ˜ธ ๋ฌธ์ž

1. (xy) : ์†Œ๊ด„ํ˜ธ ์•ˆ์˜ ๋‚ด์šฉ(xy)์ด ๊ทธ๋Œ€๋กœ ํฌํ•จ๋˜๋Š” ๋ฌธ์ž์—ด(๊ด„ํ˜ธ ์•ˆ์˜ ๋ฌธ์ž์—ด ๊ทธ๋ฃนํ™”)
   ex) "xy"(O), "yx"(X), "axy"(O)

2. x{n} : x๊ฐ€ n๋ฒˆ๋งŒํผ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด(์ •ํ™•ํžˆ n๋ฒˆ)
   ex) x{5} : x๊ฐ€ 5๋ฒˆ ๋ฐ˜๋ณต. "xxxxx"(O), "xxxx"(X)

3. x{n,} : x๊ฐ€ n๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด
   ex) x{5,} : x๊ฐ€ 5๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต. "xxxxx"(O), "xxxxxx"(O), "xxx"(X)

4. x{n,m} : x๊ฐ€ n๋ฒˆ ์ด์ƒ, m๋ฒˆ ์ดํ•˜๋งŒํผ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด
   ex) x{2,4} : x๊ฐ€ 2๋ฒˆ ์ด์ƒ 4๋ฒˆ ์ดํ•˜ ๋ฐ˜๋ณต. "xx"(O), "xxx"(O), "xxxx"(O), "x"(X)

5. [] ๋Œ€๊ด„ํ˜ธ๋Š” ๊ด„ํ˜ธ ๋‚ด์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ(๊ด„ํ˜ธ ์•ˆ์˜ ๋‚ด์šฉ ์ค‘ ํ•œ ๊ธ€์ž)
   5-1. [x] : x๊ฐ€ ํฌํ•จ๋˜๋Š” ๋ฌธ์ž 1๊ฐœ
         [xyz] : x ์™€ y ์™€ z ์ค‘ 1๊ฐœ
   5-2. [^x] : x๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ž 1๊ฐœ(^ ๊ธฐํ˜ธ๋ฅผ ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ถ€์ •์˜ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋จ)
   5-3. [x-y] : x ๋ถ€ํ„ฐ y ๊นŒ์ง€์˜ ๋ฌธ์ž ์ค‘ 1๊ฐœ
        => [A-Z] : ๋Œ€๋ฌธ์ž A ๋ถ€ํ„ฐ ๋Œ€๋ฌธ์ž Z ๊นŒ์ง€ ์ค‘ 1๊ฐœ ๋ฌธ์ž
           [a-z] : ์†Œ๋ฌธ์ž a ๋ถ€ํ„ฐ ์†Œ๋ฌธ์ž z ๊นŒ์ง€ ์ค‘ 1๊ฐœ ๋ฌธ์ž
           [0-9] : ์ˆซ์ž 1๊ฐœ
           [๊ฐ€-ํžฃ] : ํ•œ๊ธ€ 1๊ฐœ ๋ฌธ์ž
   => ์ฃผ๋กœ ์ค‘๊ด„ํ˜ธ(๋ฐ˜๋ณต ์ง€์ •)์™€ ์กฐํ•ฉํ•˜์—ฌ ๋งŽ์ด ์‚ฌ์šฉ๋จ
   ex) ^[๊ฐ€-ํžฃ]{2,5}$ : ํ•œ๊ธ€ 2๊ธ€์ž์—์„œ 5๊ธ€์ž ์‚ฌ์ด  => ์ฃผ๋กœ ํ•œ๊ธ€ ์ด๋ฆ„ ํ™•์ธ์— ์‚ฌ์šฉ
       ^[A-Za-z]{2,8}$ : ์˜๋ฌธ์ž(๋Œ€๋ฌธ์ž ๋˜๋Š” ์†Œ๋ฌธ์ž) 2๊ธ€์ž ~ 8๊ธ€์ž
       ^[A-Za-z0-9]{4,16}$ : ์˜๋ฌธ์ž ๋˜๋Š” ์ˆซ์ž 4 ~ 16๊ธ€์ž ์‚ฌ์ด
   ex2) ์‹๋ณ„์ž ์ž‘์„ฑ ๊ทœ์น™
        1) ์ฒซ๊ธ€์ž ์ˆซ์ž ์‚ฌ์šฉ ๋ถˆ๊ฐ€(์ฒซ๊ธ€์ž๋Š” ์˜๋ฌธ์ž, ํ•œ๊ธ€, ํŠน์ˆ˜๋ฌธ์ž $ ๋˜๋Š” _ ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
        2) ํŠน์ˆ˜๋ฌธ์ž $ ๋˜๋Š” _ ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
        3) ๊ธธ์ด ์ œํ•œ ์—†์Œ
        4) ์˜ˆ์•ฝ์–ด ์‚ฌ์šฉ ๋ถˆ๊ฐ€
        5) ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„
        => 1๋ฒˆ๊ณผ 2๋ฒˆ, 3๋ฒˆ ๊ทœ์น™๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ๊ฒฝ์šฐ
             (์ฒซ๊ธ€์ž์—” ์ˆซ์ž ์ œ์™ธํ•œ 1๊ธ€์ž, ๋‘๋ฒˆ์งธ ๊ธ€์ž๋ถ€ํ„ฐ๋Š” ์žˆ์–ด๋„ ๊ทธ๋งŒ, ์—†์–ด๋„ ๊ทธ๋งŒ(์ฆ‰, 0๊ฐœ ์ด์ƒ))
             ^[A-Za-z๊ฐ€-ํžฃ$_][A-Za-z0-9๊ฐ€-ํžฃ$_]{0,}$
             ^[A-Za-z๊ฐ€-ํžฃ$_][A-Za-z0-9๊ฐ€-ํžฃ$_]*$

------------------------------------------------------------------------------
์˜ˆ์‹œ)
1) a{1}b{2}c{2,4} => a๊ฐ€ 1๋ฒˆ, b๊ฐ€ 2๋ฒˆ, c๊ฐ€ 2๋ฒˆ ์ด์ƒ 4๋ฒˆ ์ดํ•˜ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด
   ex) "abbcc"(O), "abbccc"(O), "abbcccc"(O)
       "abbc"(X), "aabbcc"(X)

2) (a1){2}b{2,3}c{2,} => (a1) ๊ทธ๋ฃน์ด 2๋ฒˆ, b๊ฐ€ 2๋ฒˆ ์ด์ƒ 3๋ฒˆ ์ดํ•˜, c๊ฐ€ 2๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž์—ด
   ex) "a1a1bbccc"(O), "a1a1bbbccccccccccccc"(O)
       "a1bbccc"(X), "a1bbbc"(X)

 

์˜ˆ์™ธ ๋ฌธ์ž - ์ž๋ฐ”์˜ ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž(\n) ๊ฐ™์€ ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• 

\^ : ^ ๊ธฐํ˜ธ๋ฅผ ํŒจํ„ด์œผ๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๊ณ , ์ผ๋ฐ˜ ๋ฌธ์ž๋กœ ์ธ์‹
\d : ์ˆซ์ž => [0-9] ์™€ ๋™์ผ
\D : ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ
\s : ๊ณต๋ฐฑ๋ฌธ์ž
\S : ๊ณต๋ฐฑ์ด ์•„๋‹Œ ๊ฒƒ
\w : ์˜๋‹จ์–ด ๊ตฌ์„ฑ์š”์†Œ(์•ŒํŒŒ๋ฒณ, ์ˆซ์ž, _)
\W : ์˜๋‹จ์–ด ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ
---------------------------------------------------------------------------------
< ์œ ์šฉํ•œ ์ •๊ทœํ‘œํ˜„์‹ ์˜ˆ >   
1. ํ•œ๊ธ€ ์ด๋ฆ„(2๊ธ€์ž ~ 5๊ธ€์ž ์‚ฌ์ด) : ^[๊ฐ€-ํžฃ]{2,5}$
2. ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ : ^(010|011)[-\s]?\d{3,4}[-\s]?\d{4}$
   1) ^(010|011) : 010 ๋˜๋Š” 011 ๋กœ ์‹œ์ž‘
   2) [-\s]? : - ๊ธฐํ˜ธ ๋˜๋Š” ๊ณต๋ฐฑ์ด ํฌํ•จ๋  ์ˆ˜๋„ ์žˆ๊ณ , ํฌํ•จ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Œ
   3) \d{3,4} : ์ˆซ์ž 3์ž๋ฆฌ ๋˜๋Š” 4์ž๋ฆฌ
   4) \d{4}$ : ์ˆซ์ž 4์ž๋ฆฌ๋กœ ๋
   => 010 ๋˜๋Š” 011๋กœ ์‹œ์ž‘ํ•˜๊ณ , - ๊ธฐํ˜ธ ๋˜๋Š” ๊ณต๋ฐฑ์ด ํฌํ•จ๋˜๊ฑฐ๋‚˜ ํฌํ•จ๋˜์ง€ ์•Š๊ณ , ๊ทธ ๋’ค์—
      ์ˆซ์ž 3์ž๋ฆฌ ๋˜๋Š” 4์ž๋ฆฌ๊ฐ€ ์˜ค๊ณ , ๊ทธ ๋’ค์— - ๊ธฐํ˜ธ ๋˜๋Š” ๊ณต๋ฐฑ์ด ํฌํ•จ๋˜๊ฑฐ๋‚˜ ํฌํ•จ๋˜์ง€ ์•Š๊ณ ,
      ๋งˆ์ง€๋ง‰์€ ์ˆซ์ž 4์ž๋ฆฌ๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด

 

์ •๊ทœํ‘œํ˜„์‹์˜ ํ”Œ๋ž˜๊ทธ(Flag)

- ํŒจํ„ด ๊ฒ€์ƒ‰ํ•  ๋•Œ ๊ฒ€์ƒ‰ ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ๋ฌธ์ž
- ์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด ๋’ค์— / ๊ธฐํ˜ธ๋ฅผ ๋ถ™์ด๊ณ  ๊ทธ ๋’ค์— ํ”Œ๋ž˜๊ทธ ๋ช…์‹œ
  => ํ”Œ๋ž˜๊ทธ๋Š” ๋ณต์ˆ˜๊ฐœ์˜ ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‚˜์—ดํ•˜์—ฌ ๋ณต์ˆ˜๊ฐœ์˜ ๊ทœ์น™ ์ง€์ • ๊ฐ€๋Šฅ

1. i(ignore case) : ๊ฒ€์ƒ‰ ์‹œ ์˜๋ฌธ์ž ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„์—†์ด ๊ฒ€์ƒ‰
   ex) ^hello$/i : "Hello", "hello", "HELLO" ๋ชจ๋‘ ํŒจํ„ด ์ผ์น˜ํ•จ

2. g(global) : ๊ฒ€์ƒ‰ ์‹œ ํ•ด๋‹น ํŒจํ„ด์ด ์—ฌ๋Ÿฌ๋ฒˆ ๋“ฑ์žฅํ•  ๊ฒฝ์šฐ ๋ชจ๋“  ํŒจํ„ด์„ ๋‹ค ๊ฒ€์ƒ‰
   ex) ^Java$/g : "Java and Javascript has no relation" ๋ฌธ์ž์—ด์—์„œ
                 "Java" ์™€ "Javascript" ์˜ "Java" ๋ฌธ์ž์—ด์ด ๋ชจ๋‘ ๊ฒ€์ƒ‰๋จ
                 ๋”ฐ๋ผ์„œ, ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์น˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ ๋‘ ๋ฒˆ ์น˜ํ™˜๋จ
                 => ๋งŒ์•ฝ, g ํ”Œ๋ž˜๊ทธ ์ƒ๋žต ์‹œ ์ฒ˜์Œ ๋งŒ๋‚˜๋Š” "Java" ๋ฌธ์ž์—ด๋งŒ ๊ฒ€์ƒ‰๋œ ํ›„ ๊ฒ€์ƒ‰ ์ข…๋ฃŒ

3. m(multi line) : ๊ฒ€์ƒ‰ ๋ฌธ์ž์—ด์ด ๋‹ค์ค‘ ๋ผ์ธ(์—ฌ๋Ÿฌ์ค„)์ผ ๊ฒฝ์šฐ ์ „์ฒด ๋ผ์ธ์— ๊ฑธ์ณ ๋ชจ๋‘ ๊ฒ€์ƒ‰ ์ˆ˜ํ–‰
                   ex) ํ™๊ธธ๋™
                       "์•ˆ๋…•ํ•˜์„ธ์š”.\n
                       ํ™๊ธธ๋™์ž…๋‹ˆ๋‹ค."
                       => ์œ„์˜ ๋‘ ์ค„์งœ๋ฆฌ ๋ฌธ์ž์—ด์—์„œ ํ™๊ธธ๋™์ด ๋‘๋ฒˆ์งธ ๋ผ์ธ์— ์žˆ์œผ๋ฏ€๋กœ ๊ฒ€์ƒ‰ X
                   ex2) ํ™๊ธธ๋™/m
                       => ํ™๊ธธ๋™์ด ๋‘๋ฒˆ์งธ ๋ผ์ธ์— ์žˆ๋”๋ผ๋„ ๊ฒ€์ƒ‰ O