ABOUT ME

As iron sharpens iron

Today
Yesterday
Total
  • 05. ๋ฐ˜๋ณต ์ฐพ๊ธฐ
    ๐Ÿง  codingtest/์ •๊ทœํ‘œํ˜„์‹(regexp) 2022. 9. 3. 19:12
    728x90

    ๋ฌธ์ž ํ•˜๋‚˜ ์ด์ƒ ์ฐพ๊ธฐ

    • ๋”ํ•˜๊ธฐ(+)๋Š” ๋ฌธ์ž๊ฐ€์ผ ๋•Œ ์ผ์น˜ํ•จ
    • ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ
    • ๋ณ„ํ‘œ(*)๋Š” ๋ฌธ์ž๊ฐ€์ผ ๋•Œ ์ผ์น˜ํ•จ(์žˆ์–ด๋„ ์—†์–ด๋„ ๋จ)
    • 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,}?

    ๋Œ“๊ธ€