🧠 codingtest/μ •κ·œν‘œν˜„μ‹(regexp)

07. ν•˜μœ„ ν‘œν˜„μ‹ μ‚¬μš©ν•˜κΈ°

awesomeyelim 2022. 9. 3. 20:08
728x90

 

  • ν•˜μœ„ ν‘œν˜„μ‹(Subexpression)(())을 μ‚¬μš©ν•˜μ—¬ μ—¬λŸ¬ ν‘œν˜„μ‹μ„ μ–΄λ–»κ²Œ λ¬ΆλŠ”μ§€ μ•Œμ•„λ³΄μž!

ν•˜μœ„ ν‘œν˜„μ‹ 이해

μ˜ˆμ‹œλΉ„κ΅

- μ˜ˆμ‹œ
1920-06-07 the cat   scattered    his food all over room,
λŒ€μž…μ‹ λ§€μΉ­κ²°κ³Ό
1.  {2,} 1920-06-07 the cat   scattered    his food all over room,
2. ( ){2,} 1920-06-07 the cat   scattered    his food all over room,
3.19|20\d{2} 1920-06-07 the cat   scattered    his food all over room,
4. (19|20)\d{2} 1920-06-07 the cat   scattered    his food all over room,

πŸ“Œ 1번 ν•­λͺ©μ€ μ•žμ— μžˆλŠ” μ„Έλ―Έμ½œλ‘ μ„ λŒ€μƒμœΌλ‘œ 반볡(;) λ˜κΈ°λ•Œλ¬Έμ— 맀칭이 x
πŸ“Œ 3번 ν•­λͺ©μ€ '|'(OR μ—°μ‚°μž)λ₯Ό μ‚¬μš©ν•˜μ˜€λ‹€(19 λ˜λŠ” 20 κ³Ό 일치)ν•˜λ©° ν•˜μœ„ν‘œν˜„μ‹ 지정을 μ•ˆν•΄μ£Όμ—ˆκΈ° λ•Œλ¬Έμ— 19만 지정됨

 

πŸ”‘ 가독성을 높이기 μœ„ν•œ ν•˜μœ„ν‘œν˜„μ‹(()) μ‚¬μš©λ„ μΆ”μ²œ πŸ”‘

 

 

 

μ€‘μ²©λœ ν•˜μœ„ ν‘œν˜„μ‹

             IP 좔적 νŒ¨ν„΄

    1. λͺ¨λ“  ν•œ 자리 ν˜Ήμ€ 두 자리 숫자 -> (\d{1,2})
    2. 1둜 μ‹œμž‘ν•˜λŠ” λͺ¨λ“  μ„Έ 자리 숫자 -> (1\d{2})
    3. 2둜 μ‹œμž‘ν•˜λ©΄μ„œ λ‘λ²ˆμ§Έ 자리 μˆ«μžκ°€ 0λΆ€ν„° 4μ‚¬μ΄μ˜ λͺ¨λ“  μ„Έμžλ¦¬ 숫자 -> (2[0-4]\d)
    4. 25둜 μ‹œμž‘ν•˜λ©΄μ„œ μ„Έλ²ˆμ§Έ 자리 μˆ«μžκ°€ 0λΆ€ν„° 5μ‚¬μ΄μ˜ λͺ¨λ“  μ„Έμžλ¦¬ 숫자 -> (25[0-5])
- μ˜ˆμ‹œ
Yelim.com [`12.159.46.200`] with 32bytes of data
λŒ€μž…μ‹ μ‹€ν–‰κ²°κ³Ό
(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(\d{2})|(2[0-4]\d)|(25[0-5])) Yelim.com [ 12.159.46.200 ] with 32bytes of data