-
02. YYYY-MM-DD
λ μ§λ₯Ό μ κ· ννμμΌλ‘ λνλ΄λ³΄μ!
μΌλ¨ λ΄κ° μ§ μ»΄νμΌ μ½λλ λ€μκ³Ό κ°λ€.
import re p = re.compile('((\d{4})|\d{2})?(-|/|.)?(?P<month>[1-9]|0[1-9]|1[0-2])(-|/|.|μ )(?P<date>([1-9]|0[1-9]|[1-2][0-9]|3[01]))μΌ?$')
μ»΄νμΌ μ½λλ§ λ°λ‘ λΉΌμ λ΄λ³΄μ.
((\d{4})|\d{2})?(-|/|.)?(?P<month>[1-9]|0[1-9]|[10-12])(-|/|.|μ )(?P<date>([1-9]|0[1-9]|[1-2][0-9]|3[01]))μΌ?$')
ν μ€λ‘ λ§λ€λ€ 보λκΉ λ¨Έλ¦¬κ° ν°μ§ κ² κ°μλ€... μ΄ μμ 2μμ 28μΌκΉμ§λΌλ λͺ μκ° μλ€. μλλ©΄ νλ€μ΄μ λ°μ 쑰건문μ λ°λ‘ λ§λ€μ΄ 쀬기 λλ¬Έμ΄λ€. λν, μ°μ ν μ€νΈ μΌμ΄μ€μ λ§κ² λ§λ€μ΄ μ‘λ€. μΌλ¨ κ·Έ 쑰건문μ λμ€μ λ³΄κ³ , μ§κΈμ μ΄ μ κ· ννμμ λΆν΄ν΄ 보μ.
((\d{4})|\d{2})?
(-|/|.)?
(?P<month>[1-9]|0[1-9]|1[0-2])
(-|/|.|μ )
(?P<date>([1-9]|0[1-9]|[1-2][0-9]|3[01]))
μΌ?$λμΆ© μ΄λ κ² λλ λ³Ό μ μκ² λ€.
((\d{4})|\d{2})? λ μ°λλ₯Ό λνλΈλ€. 2019μ²λΌ 4μ리 μΌμλ, 19μ²λΌ λμ리 μΌ μλ μμ΄μ | ꡬλΆμλ₯Ό ν΅ν΄μ λ μ€ νλκ° λ€μ΄μ¨λ€κ³ νκ³ , μμ μ λ ₯μ΄ μμ μλ μμ΄μ ?λ₯Ό ν΅ν΄ λ€μ΄μ¬μλ, λ€μ΄μ€μ§ μμ μλ μλ€κ³ λͺ μν΄ μ£Όμλ€.
(-|/|.)? μ μ°λμ μμ ꡬλΆμ§λ ꡬλΆμλ€. μ½κ² λ§ν΄μ 2000-01, 2000/01, 2000.01 μ λ»νλ€. μ΄ μμ μ°λμ μ λ ₯λ°μ§ μμΌλ©΄ νμκ° μμ΄μ Έμ ?λ₯Ό μ΄μ©ν΄ μμ μλ μκ³ , μμ μλ μλ€κ³ λͺ μνλ€.
(?P<month>[1-9]|0[1-9]|1[0-2]) μ μμ λνλΈλ€. ?Pλ₯Ό μ΄μ©ν΄μ κ·Έλ£Ήνν κ·Έλ£Ήμ monthλΌλ μ΄λ¦μ μ£Όμλ€.
μμ΄ νμλ¦¬μΌ κ²½μ° 01μ, 1μ λκ°μ§ κ²½μ°μ μκ° μμ΄μ κ·Έ κ²½μ°μ μλ₯Ό λ°λ‘λ°λ‘ νκΈ°ν΄ μ£Όμλ€. λ λμλ¦¬μΌ κ²½μ°λ λ°λ‘ λ§λ€μλ€. λͺ°λλλ°, [ ] μμ λ€μ΄κ°λ μ«μλ νμ리 μλ‘ μ νλλ€... μ¦ 10, 11, 12μμ νκΈ° νκΈ° μν΄ [10-12]κ° μλλΌ 1[0-2]λ‘ ν΄μΌ ν¨μ λ»νλ€. κΌΌμ μ ν΅νλ€...
(-|/|.|μ ) μ μ λ€μ λνλλ ꡬλΆμλ€. 06-01, 06/1, 06.1, 6μ 1μΌ μ λ»νλ€. νκΈ 'μ'κ³Ό λ€μ λμ€λ μ«μ μΌ μ¬μ΄μ spaceκ° μκΈ° λλ¬Έμ κΌ μ κΈ° μ¨μ€λμλ 'μ 'μ΄λΌκ³ μ¨μ€μΌ νλ€. white spaceλ λ¬Έμλ€!!!
(?P<date>([1-9]|0[1-9]|[1-2][0-9]|3[01])) μ μΌμ λνλΈλ€. monthμ λ§μ°¬κ°μ§λ‘ κ·Έλ£Ήμ dateλΌλ μ΄λ¦μ μ£Όμλ€.
μΌ μμ 1, 01κ°μ΄ νμ리μ κ²½μ° λ κ°μ§μ κ²½μ°μ μκ° λνλ μ μμΌλ―λ‘ λ€ νκΈ°ν΄μ£Όμκ³ , 10~29μΌ κΉμ§λ [1-2][0-9] λ‘ νκΈ°νλ€. 30μΌ λμ κ²½μ° 30, 31 λκ°μ§μ κ²½μ°μ μ λ°μ μμ΄μ 3[01]λ‘ νκΈ°νλ€.
μΌ?$ μ μ«μ μΌ λ€μ λμ€λ νκΈ 'μΌ'μ λ»νλ€. 30μΌ ν λ μ΄ 'μΌ'. κ·Έλ¦¬κ³ $μ΄ μ€μνλ°, λ μ§λ₯Ό μ λ ₯ λ°μ λ, μ°λλ μ λ ₯λ°μ§ μμλ μ, μΌμ κΌ μ λ ₯ λ°λλ€. κ·Έλ°λ°, λ§μ½ μ°λλ₯Ό μ λ ₯λ°μ§ μλλ€λ©΄ μ, μΌλ§ μ λ ₯ λ°κ² λλλ° μ°λμ κ²½μ°μ μμλ μ°λκ° 19μ²λΌ λμλ¦¬λ‘ μ λ ₯λ°λ κ²½μ°λ μκΈ° λλ¬Έμ, μλͺ» λλ©΄ μλ‘ λ€μ΄κ°μΌ νλ μ λ³΄κ° μ°λλ‘ λ€μ΄κ°κ² λ μλ μλ€. μ΄λ₯Ό λ°©μ§ νκΈ° μν΄ λ§μ§λ§μ΄ κΌ 'μΌ'μ΄λΌλ κ²μ λνλ΄κΈ° μν΄ $μ μ¬μ©ν΄μΌ νλ€.
μ 체 μ½λλ λ€μκ³Ό κ°λ€.
import re p = re.compile('((\d{4})|\d{2})?(-|/|.)?(?P<month>[1-9]|0[1-9]|1[0-2])(-|/|.|μ )(?P<date>([1-9]|0[1-9]|[1-2][0-9]|3[01]))μΌ?$') data = ['2019-06-06', '2019/06/06', '2019.06.06', '19.12.06', '6/6', '06/13', '06μ 3μΌ', '6μ 20μΌ', '2019.06.41', '2019.13.30', '2000.00.01', '2000.2.31' ] for i in data: m = p.match(i) if m and ((1 if (int(m.group("date"))<=28) else 0) if int(m.group("month"))==2 else 1): print('REPLACEDATE') else: print(i)
μ€κ°μ 쑰건문μ μ΄μ©ν΄μ 2μμ΄ 28μΌμ΄ λμ΄κ°λμ§ κ²μ¬νλλ‘ νλ€. pythonμ 3ν μ°μ°μλ₯Ό μ΄μ©νλ€.
κ²°κ³Όλ μ λμ¨λ€.
μ κ· ννμ... μ¬λ°λλ° μ΄λ ΅λ€γ
'πSTUDY > πλ€ν (dafit.me)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[DF905] 01. Telephone Number (0) 2020.02.26 [DF913] 10. μ νλ²νΈ μ μ²λ¦¬ (0) 2020.02.25 [DF913] 09. λ¬Έμμ΄ νν° (0) 2020.02.11 [DF913] 08. μνλ²³ λμ½λ© (0) 2020.02.11 [DF913] 07. λ³μ°κΈ° νΌν© (0) 2020.02.11 λκΈ