μžμ—°μ–΄ 처리/Today I learned :

[μžμ—°μ–΄ 처리]ν•œκ΅­μ–΄ μ „μ²˜λ¦¬ re

주영 🐱 2023. 1. 3. 17:47
728x90
λ°˜μ‘ν˜•

import re

re.sub('[0-9]+', 'num', '1 2 3 4 hello')    # 숫자만 μ°Ύμ•„μ„œ num으둜 λ°”κΏˆ
  • re.sub('νŒ¨ν„΄', 'λ°”κΏ€λ¬Έμžμ—΄', 'λ¬Έμžμ—΄', λ°”κΏ€νšŸμˆ˜)둜 κ°„λ‹¨ν•œ λ¬Έμžμ—΄ μ°¨ν™˜μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ, re.complie()을 μ“°λ©΄ λ°˜λ³΅λ˜λŠ” μž‘μ—…μ„ ν•œλ²ˆμ— μ²˜λ¦¬ν•  수 μžˆλ‹€. 
# μž„μ˜μ˜ ν•œ 개의 문자λ₯Ό λ‚˜νƒ€λ‚΄λŠ” . 
r = re.compile("a.c")
r.search("abc")

 

# ? μ•žμ˜ λ¬Έμžκ°€ μ‘΄μž¬ν•  μˆ˜λ„ 있고, μ‘΄μž¬ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλŠ” 경우
r = re.compile("a?c")
# * 은 λ°”λ‘œ μ•žμ˜ λ¬Έμžκ°€ 0개 이상일 경우λ₯Ό λ‚˜νƒ€λƒ„.
r = re.compile("ab*c") # b κ°€ ν•˜λ‚˜λ„ μ—†κ±°λ‚˜, μ—¬λŸ¬ 개인 경우''


# + μ•žμ˜ λ¬Έμžκ°€ μ΅œμ†Œ 1개 이상 μžˆμ–΄μ•Ό 함. 
r = re.compile("ab+c")

# ^ μ‹œμž‘λ˜λŠ” κΈ€μžλ₯Ό 지정함. 
r = re.compile("^a")

# μ•ž 문자λ₯Ό ν•΄λ‹Ή 숫자만큼 λ°˜λ³΅ν•΄μ•Ό 함.
r = re.compile("ab{2}c")

# μ•ž 문자λ₯Ό 숫자1 이상 숫자2 μ΄ν•˜ 만큼 λ°˜λ³΅ν•΄μ•Ό 함.
r = re.compile("ab{2,8}c")

# μ•ž 문자λ₯Ό 숫자 이상 만큼 λ°˜λ³΅ν•΄μ•Ό 함.
r = re.compile("a{2,}bc")

# [] μ•ˆμ— μžˆλŠ” λ¬Έμžλ“€ 쀑 ν•œ 개의 λ¬Έμžμ™€ 맀치
# λ²”μœ„λ₯Ό 지정할 μˆ˜λ„ 있음. 예) a-z, A-Z, 0-9
r = re.compile('[abc]')

# ^기호 뒀에 뢙은 λ¬Έμžλ“€μ„ μ œμ™Έν•œ λͺ¨λ“  문자λ₯Ό λ§€μΉ˜ν•¨.
r = re.compile("[^abc]") # abc μ œμ™Έ λͺ¨λ“  문자
λ°˜μ‘ν˜•