ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 000. μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ •κ·œν‘œν˜„μ‹ ν™œμš© 및 ν•œκΈ€, μœ λ‹ˆμ½”λ“œ 일치 !
    🧠 codingtest/μ •κ·œν‘œν˜„μ‹(regexp) 2022. 9. 8. 08:44
    728x90
    🐜 κΈ°λ³Έ μ •κ·œν‘œν˜„μ‹ 문법이 μ—¬λŸ¬κ΅¬ν˜„μ—μ„œ λŒ€λΆ€λΆ„ λ™μΌν•˜λ‹€κ³  해도 μ •κ·œν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜λŠ” 방식은 닀름
    μ •κ·œν‘œν˜„μ‹μ„ μ§€μ›ν•˜λŠ” 언어와 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” μžμ‹ λ§Œμ˜ ν˜ΈμΆœλ°©λ²•μ΄ 있고, μ‚¬μ†Œν•œ 차이점이 μ‘΄μž¬ν•œλ‹€.

     

    μžλ°”μŠ€ν¬λ¦½νŠΈ

    πŸ“Œ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” Stringκ³Ό RegEx 객체λ₯Ό λ‹€μŒ λ©”μ„œλ“œλ‘œ μ²˜λ¦¬ν•˜μ—¬ μ •κ·œν‘œν˜„μ‹μ„ κ΅¬ν˜„

    * RegEx 객체의 exec λ©”μ„œλ“œ - μΌμΉ˜ν•˜λŠ” 뢀뢄을 μ°ΎλŠ”λ‹€.
    * String 객체의 match λ©”μ„œλ“œ - λ¬Έμžμ—΄μ„ μ°ΎλŠ”λ‹€.
    * String 객체의 replace μ—μ„œλ“œ - μΉ˜ν™˜ λͺ…령을 μˆ˜ν–‰ν•œλ‹€.
    * String 객체의 search λ©”μ„œλ“œ - λ¬Έμžμ—΄μ—μ„œ μΌμΉ˜ν•˜λŠ” 뢀뢄이 μžˆλŠ”μ§€ κ²€μ‚¬ν•œλ‹€.
    * String 객체의 split λ©”μ„œλ“œ - λ¬Έμžμ—΄ ν•˜λ‚˜λ₯Ό μ—¬λŸ¬ 개둜 λ‚˜λˆˆλ‹€.
    * RegEx 객체의 test λ©”μ„œλ“œ - μ£Όμ–΄μ§„ λ¬Έμžμ—΄μ΄ μΌμΉ˜ν•˜λŠ”μ§€ κ²€μ‚¬ν•œλ‹€.

     

     

    ❗️ λ‹€μŒκ³Ό 같은 주의 사항이 μžˆλ‹€.

    • μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν”Œλž˜κ·Έ(fleg)λ₯Ό μ‚¬μš©ν•΄ μ „μ—­ λŒ€μ†Œλ¬Έμžλ₯Ό ꡬ별해 κ²€μƒ‰ν•œλ‹€.(g둜 전역을 μ„€μ •, iλŠ” λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λ³„ν•˜μ§€ μ•Šκ³  μΌμΉ˜μ‹œν‚΄ -> λ‘κ°œλ₯Ό ν•©μ³μ„œ gi둜 ν‘œμ‹œν•¨)
    • λ‹€μŒκ³Ό 같은 λ³€κ²½μžκ°€ 좔가됨

     

    λ³€κ²½μž/μ§€μ‹œμž μ„€λͺ…
    m 닀쀑행 λ¬Έμžμ—΄μ„ μ§€μ›ν•œλ‹€.
    s 단일행 λ¬Έμžμ—΄μ„ μ§€μ›ν•œλ‹€.
    x μ •κ·œν‘œν˜„μ‹ λ‚΄ ν¬ν•¨λœ 곡백을 λ¬΄μ‹œν•œλ‹€.
    • μ—­μ°Έμ‘°λ₯Ό μ‚¬μš©μ‹œ
      • $'λŠ” μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄ μ•žμ— μžˆλŠ” λ¬Έμžμ—΄μ„ λͺ¨λ‘ λ°˜ν™˜ν•œλ‹€.
      • $`λŠ” μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄ 뒀에 μ˜€λŠ” λ¬Έμžμ—΄μ„ λͺ¨λ‘ λ°˜ν™˜ν•œλ‹€.
      • $+λŠ” λ§ˆμ§€λ§‰ ν•˜μœ„ ν‘œν˜„μ‹κ³Ό μΌμΉ˜ν•œ λ‚΄μš©μ„ λ°˜ν™˜ν•œλ‹€.
      • $&λŠ” μΌμΉ˜ν•œ λ¬Έμžμ—΄μ„ λͺ¨λ‘ λ°˜ν™˜ν•œλ‹€.

     

    • μžλ°”μŠ€ν¬λ¦½νŠΈμ—λŠ” RegExpλΌλŠ” 전역객체가 μžˆμ–΄, μ •κ·œ ν‘œν˜„μ‹μ„ μ‹€ν–‰ν•œ λ‹€μŒμ— κ΄€λ ¨λœ 정보λ₯Ό μ–»μ–΄μ˜¬ 수 μžˆλ‹€.
    • 포직슀(POSIX) 문자 ν΄λž˜μŠ€λŠ” μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • \A 와 \Z λŠ” μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.

     

    μ •κ·œν‘œν˜„μ‹κ³Ό ν•œκΈ€ 그리고 μœ λ‹ˆμ½”λ“œ

    ν•œκΈ€ μΌμΉ˜μ‹œν‚€κΈ°

    μ§€κΈˆκΉŒμ§€λŠ” μ˜ˆμ œμ™€ ν‘œν˜„μ‹μ΄ λͺ¨λ‘ μ˜μ–΄λ‘œλ§Œ λ˜μ–΄μžˆμ—ˆλ‹€. κ·Έλ ‡λ‹€λ©΄, μ •κ·œν‘œν˜„μ‹μ—μ„œ ν•œκΈ€μ„ μ‚¬μš©ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ ?

    짚고 λ„˜μ–΄κ°€μ•Όν•  λΆ€λΆ„

    πŸ“Œ ν•œκΈ€μ€ \w와 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ”λ‹€.(\w : [A-Za-z0-9])

     

     

    μ˜ˆμ‹œ 비ꡐ

    - μ˜ˆμ‹œ
    κ΅­μ–΄:수
    μ˜μ–΄:수
    μˆ˜ν•™:수
    미술:μ–‘
    체윑:미
     
    μ •κ·œμ‹
    (?<=[^κ°€-νž‡])(수|우|λ―Έ|μ–‘|κ°€)(?=[^κ°€-νž‡])
    κ²°κ³Ό
    κ΅­μ–΄:수
    μ˜μ–΄:수
    μˆ˜ν•™:수
    미술:μ–‘
    체윑:미

     

    πŸ“Œ [^κ°€-νž‡] νŒ¨ν„΄μ„ μ‚΄νŽ΄λ³΄λ©΄ κ°€λŠ” ν•œκΈ€ 문자 μ§‘ν•©μ—μ„œ κ°€μž₯ 첫번째 문자이고, νž£μ€ κ°€μž₯ λ§ˆμ§€λ§‰ λ¬Έμžμ΄λ‹€.([A-Z]νŒ¨ν„΄κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ κ°€λΆ€ν„° 힣문자 사이에 μžˆλŠ” λͺ¨λ“  문자λ₯Ό λ‚˜νƒ€λƒ„. 즉, λͺ¨λ“  ν•œκΈ€λ¬Έμžμ™€ 일치)
    πŸ“Œ κ·ΈλŸ¬λ―€λ‘œ [^κ°€-νž‡] νŒ¨ν„΄μ€ ν•œκΈ€μ΄ μ•„λ‹Œ λ¬Έμžμ™€ λͺ¨λ‘ μΌμΉ˜ν•¨

     

     

     

     

    μœ λ‹ˆμ½”λ“œ μΌμΉ˜μ‹œν‚€κΈ°

    - μœ λ‹ˆμ½”λ“œμ—λŠ” ν•œκΈ€λΏλ§Œ μ•„λ‹Œ λ‹€μ–‘ν•œ 언어와 κΈ°ν˜Έκ°€ ν¬ν•¨λ˜μ–΄ 있음

    🐜 μ •κ·œ ν‘œν˜„μ‹μœΌλ‘œ μΌμΉ˜μ‹œν‚€κΈ° μœ„ν•΄μ„  μœ λ‹ˆμ½”λ“œ 번호(Unicode code point)λ₯Ό μ‚¬μš©ν•˜λŠ” 방법을 μ•Œμ•„λ³΄μž !

    - μœ λ‹ˆμ½”λ“œλŠ” λ¬Έμžλ§ˆλ‹€ μˆœμ„œλŒ€λ‘œ 번호λ₯Ό ν• λ‹Ήν•œλ‹€. 이 번호(code point)λ₯Ό 직접 μ‚¬μš©ν•΄ μœ λ‹ˆμ½”λ“œ λ¬Έμžμ™€ μΌμΉ˜μ‹œν‚¬μˆ˜ μžˆλ‹€.

     

    μ—μ‹œ 비ꡐ

    - μ˜ˆμ‹œ
    Copyright © 2022 μΈμ‚¬μ΄νŠΈ
     
    μ •κ·œμ‹
    \u00a9
    κ²°κ³Ό
    Copyright © 2022 μΈμ‚¬μ΄νŠΈ

     

    πŸ“Œ λ¬Έμžμ— ν• λ‹Ήλœ 번호 00a9λ₯Ό 톡해 © λ¬Έμžμ™€ μΌμΉ˜ν–ˆλ‹€.
    ❗️ νŒŒμ΄μ¬μ—μ„œλŠ” ν•΄λ‹Ή μ •κ·œ ν‘œν˜„ λ¬Έμžμ—΄ μ•žμ— \u00a9 와 같이 uλ₯Ό λΆ™μ—¬ μœ λ‹ˆμ½”λ“œμž„μ„ λ‚˜νƒ€λ‚΄μ•Όν•œλ‹€

    πŸ”‘ μ˜ˆμ œμ™€ 같은 ν˜•μ‹μ˜ μœ λ‹ˆμ½”λ“œ 번호(Unicode code point)λ₯Ό ν†΅ν•œ μ •κ·œν‘œν˜„μ‹ μΌμΉ˜λŠ” μžλ°”, μžλ°”μŠ€ν¬λ¦½νŠΈ, λ‹·λ„·, νŒŒμ΄μ¬λ§Œμ—μ„œ 지원.

     

     

    λŒ“κΈ€