-
05. ๋ฐ๋ณต ์ฐพ๊ธฐ๐ง codingtest/์ ๊ทํํ์(regexp) 2022. 9. 3. 19:12728x90
๋ฌธ์ ํ๋ ์ด์ ์ฐพ๊ธฐ
- ๋ํ๊ธฐ(+)๋ ๋ฌธ์๊ฐ์ผ ๋ ์ผ์นํจ
- ์ต์ ํ๋ ์ด์
- ๋ณํ(*)๋ ๋ฌธ์๊ฐ์ผ ๋ ์ผ์นํจ(์์ด๋ ์์ด๋ ๋จ)
- 0๊ฐ ์ด์
- ๐ ๋ฉํ๋ฌธ์์ด๋ค(๋ํ๊ธฐ(+) ๋ ๋ณํ(*) ๊ทธ๋๋ก ์ฐพ๊ธฐ ์ํด์ ์ด์ค์ผ์ดํ(\)ํด์ผํจ)
์์ ์ค๋ช \w+
์ต์ 1๊ฐ ์ด์ ์ผ์น ํ๋ ์์ซ์ [\w.]+
์์ซ์์ (.)์ค ์ต์ 1๊ฐ ์ด์ ์ผ์น \w*
์ต์ 0๊ฐ ์ด์ ์ผ์น ํ๋ ์์ซ์ ๋ฌธ์๊ฐ ์๊ฑฐ๋ ํ๋์ธ ๋ฌธ์ ์ฐพ๊ธฐ
- ๋ฌผ์ํ(?) ๋ฌธ์๊ฐ 0 ๋๋ 1๊ฐ์ผ ๋ ์ผ์นํจ
๐ ๋ฉํ๋ฌธ์์ด๋ค(๋ฌผ์ํ(?) ๊ทธ๋๋ก ์ฐพ๊ธฐ ์ํด์ ์ด์ค์ผ์ดํ(\)ํด์ผํจ)
์์ ์ค๋ช https?:
http: ๋๋ https: / s๊ฐ ์๋์ง ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐ์ง ๊ตฌ๊ฐ ์ง์ ํ๊ธฐ
์ ํํ ์ํ๋ ๋งํผ๋ง ์ผ์นํ๋๋ก ๋ฌธ์์๋ฅผ ์ ์ํ๊ธฐ ์ํด์ ์ค๊ดํธ({})๋ฅผ ์ฌ์ฉํจ ๐ ๋ฉํ๋ฌธ์์ด๋ค(์ค๊ดํธ({}) ๊ทธ๋๋ก ์ฐพ๊ธฐ ์ํด์ ์ด์ค์ผ์ดํ(\\)ํด์ผํจ)
์์ ์ค๋ช \d{3}
6์๋ฆฌ์ ์ซ์๋ฅผ ์ฐพ์๋ \d{1,3}
ํ์๋ฆฌ์์ 3์๋ฆฌ ์ซ์๋ฅผ ์ฐพ์๋ \d{3,}
์ต์ 3์๋ฆฌ์ ์ซ์๋ฅผ ์ฐพ์๋ ๊ณผํ๊ฒ ์ผ์นํ๋ ์ํฉ ๋ฐฉ์งํ๊ธฐ
๋ฌผ์ํ(?)๋ ๊ตฌ๊ฐ์ ์ฐ๋ฉด ์ ํํ ์ง์ ํ ๋งํผ ์ผ์นํ๊ฑฐ๋ ์ง์ ํ ๋ฒ์ ์์ ์๋ง ๊ฒ์์ ์ํํจ
์์๋น๊ต
- ์์ <[B]>Ak</[B]>and<[B]>HI</[B]>
์์ ์ค๋ช <[Bb]>.*</[Bb]>
<[B]>Ak</[B]>and<[B]>HI</[B]>
<[Bb]>.*?</[Bb]>
<[B]>Ak</[B]>
and<[B]>HI</[B]>
- ํ์์ (greedy)
๋ณํ(*)๋ ๋ํ๊ธฐ(+) ๊ฐ์ ๋ฉํ๋ฌธ์๋ ํ์์ ์ด๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฅํ ๊ฐ์ฅ ํฐ ํ ๋ฉ์ด๋ฆฌ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํจ -> ํ ์คํธ ๋ง์ง๋ง์์ ์์ํด ๊ฑฐ๊พธ๋ก ์ฐพ์ - ๊ฒ์ผ๋ฅธ(lazy)
๋ฌธ์๊ฐ ์ต์ํ์ผ๋ก ์ผ์นํจ. ๊ธฐ์กด ์๋์ ๋ค์ ๋ฌผ์ํ(?)๋ฅผ ๋ถ์ฌ์ ํํ
ํ์์ ์๋์ ๊ฒ์ผ๋ฅธ ์๋์ *
*?
+
+?
{n,}
{n,}?
'๐ง codingtest > ์ ๊ทํํ์(regexp)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
07. ํ์ ํํ์ ์ฌ์ฉํ๊ธฐ (0) 2022.09.03 06. ์์น ์ฐพ๊ธฐ (0) 2022.09.03 04. ๋ฉํ ๋ฌธ์ ์ฌ์ฉํ๊ธฐ! (0) 2022.09.03 03. ๋ฌธ์ ์งํฉ์ผ๋ก ์ฐพ๊ธฐ! (0) 2022.09.03 02. ๋ฌธ์ ํ๋ ์ฐพ๊ธฐ! (0) 2022.08.27