์ ๊ท ํํ์์ด๋?
- ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํจํด ๊ธฐ๋ฐ ๋ฌธ์์ด(์)
- ์ ๊ทํํ์์ ํตํด ์ฒ๋ฆฌํ ๋ฌธ์์ด ํจํด์ ์ง์ ํ๊ณ
ํน์ ํด๋์ค ๋ฑ์ ์ฌ์ฉํ์ฌ ์ ๊ทํํ์์ ํด๋นํ๋์ง ์ฌ๋ถ๋ฅผ ์ฒดํฌ
- 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
'๋ฐฑ์๋(Back-End) ๊ฐ๋ฐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ๋์์ธ ํจํด - ์ฑ๊ธํด ํจํด(Singleton) (0) | 2025.05.28 |
---|---|
์๋ฐ ๋ฒ์ ์ ๋ฆฌ (8,11,17,21) (0) | 2025.03.19 |
์ข์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋? (๋คํ์ฑ.. SOLID ์์น..) (3) | 2025.02.19 |
REST API / RESTful ์ด๋? (0) | 2025.02.15 |
์ ์ด์ฟผ๋ฆฌ(jQuery)๋? (0) | 2025.01.20 |