10. 쑰건 λ¬κΈ°
쑰건 μ¬μ©νκΈ°?
μ κ·ννμ 쑰건μ λ¬Όμν(?)λ₯Ό μ¬μ©ν΄ μ μν¨
- κΈ°μ‘΄μ μκ³ μλ λ¬Όμν(?)μ λνμ¬...
- λ¬Όμν(?)λ λ§μ½ λ°λ‘ μμ λ¬Έμλ ννμμ΄ μ‘΄μ¬νλ€λ©΄, κ·Έ λ¬Έμ λλ ννμκ³Ό μΌμΉν¨
- ?= μ ?<= κ° μ‘΄μ¬νλ€λ©΄ μ(μ λ°©νμ)μ΄λ λ€(νλ°©νμ)μ ν μ€νΈμ μΌμΉ
- 쑰건μ λ€λ λ¬Όμν(?) μ¬μ©
- μμ°Έμ‘°λ₯Ό μ¬μ©νλ 쑰건 μ²λ¦¬
- μ νλ°©νμμ μ¬μ©νλ 쑰건 μ²λ¦¬
1. μμ°Έμ‘° 쑰건
μμ°Έμ‘° 쑰건μ μ΄μ νμ ννμμ΄ κ²μμ μ±κ³΅νμ κ²½μ°μλ§ λ€μ κ·Έ ννμμ κ²μ¬ν¨
- 쑰건(if)μ νννλ ꡬ문μ λ€μκ³Ό κ°μ
(?(backreference)true)
- λ¬Όμν(?)λ‘ μ‘°κ±΄μ μμ -> κ΄νΈμμ μμ°Έμ‘°λ₯Ό μ§μ -> μμ°Έμ‘°κ° μ‘΄μ¬νλ κ²½μ°μλ§ νκ°λ ννμμ΄ λ°λ‘ λ€μ λμ΄
μμλΉκ΅
- μμ
<A HREF="/home"><IMG SRC="/images/home.gif"></A>
λμ μ | κ²°κ³Ό |
(<[Aa]\s+[^>]+>\s*)?<[Ii][Mm][Gg]\s+[^>]+>(?(1)\s*</[Aa]) |
<A HREF="/home"><IMG SRC="/images/home.gif"></A> |
π (<[Aa]\s+[^>]+>\s*)?
μμλ <A>
λ <a>
μμνκ·Έκ° μΌμΉν¨(μμ±μ΄ μλ€λ©΄, μμ±λ ν¨κ» μΌμΉν¨)
π <[Ii][Mm][Gg]\s+[^>]+>
λ <IMG>
νκ·Έμ μν μμ±λ λͺ¨λ ν¬ν¨ν΄ μΌμΉμν΄
π (?(1)\s*</[Aa])
λ 쑰건μΌλ‘ μμνλλ° ?(1)
μ μμ°Έμ‘°1 (<A>μμνκ·Έ)
μ΄ μμλλ§ μννλΌλ λ»μ(νκ·Έ<A>
κ° μΌμΉνλ€λ©΄ λ€μμλ μ’
λ£νκ·Έλ μΌμΉμν€λΌλ μ리)
π μμ°Έμ‘° ?(1)μ μ΄μ€μΌμ΄ν ν νμλ μλ€. ?(\1) x
- 쑰건μ λ§μ‘±νλμ§ μλμ§(if~else) νλ¨νλ ννμμ λ€μκ³Ό κ°μ(μμ°Έμ‘°κ° μ‘΄μ¬νμ§ μμ κ²½μ°μλ§ μνλλ ννμ)
(?(backreference)true|false)
μμλΉκ΅
- μμ
123-456-7890
(123)456-7890
(123)-456-7890
λμ μ |
(\()?\d{3}(?(1)\)|-)\d{3}-\d{4} |
κ²°κ³Ό |
123-456-7890 |
(123)456-7890 |
(123)-456-7890 |
π (\()?
λ μ¬λ κ΄νΈκ° μλμ§ κ²μ¬νμ§λ§, μ΄λ²μλ κ΄νΈλ‘ κ°μΈ κ·Έ κ²°κ³Όλ₯Ό νμννμμΌλ‘ λ§λ¬
π \d{3}
λ μ«μ μΈκ°μ μΌμΉ
π (?(1)\)|-)
λ 쑰건μ λ§μ‘±νλμ§μ λ°λΌ λ«λκ΄νΈ()) νΉμ νμ΄ν(-)κ³Ό μΌμΉν¨ -> μ΄λ°μμΌλ‘ κ΄νΈκ° νμ μ§μ μ΄λ£°μ μλ€.
π 쑰건μ λ¬λ©΄ ν¨ν΄μ΄ λ§€μ° λ³΅μ‘ν΄μ§ -> ννμμ μμ μ‘°κ°μΌλ‘ λλκ³ ν©μΉλ λ°©λ² μΆμ²
2. μ νλ°©νμ 쑰건
μ νλ°©νμ 쑰건μ μ λ°©νμκ³Ό νλ°©νμ λͺ
λ Ήμ΄ μ±κ³΅νλμ§μ λ°λΌ ννμμ μνν μ§ κ²°μ ν¨
π λ¬Έλ²μ΄ μμ°Έμ‘°(κ΄νΈμμ λ£λ μ«μ)κ° μ νλ°© νμ ννμμΌλ‘ λ체λμλ€λ μ λ§ λΉΌκ³ μμ°Έμ‘° 쑰건과 λμΌν¨
μμλΉκ΅
- μμ
11111
33333-
44444-4444
λμ μ |
\d{5}(?(?=-)-\d{4}) |
κ²°κ³Ό |
11111 |
33333- |
44444-4444 |
π \d{5}
λ μλΆλΆ λ€μ―μ리 μ«μμ μΌμΉ
π (?(?=-)-\d{4})
κ°μ ννλ₯Ό ν μ‘°κ±΄μ΄ λνλ
π μ λ°©νμ ?=-
λ‘ νμ΄νμ μ°Ύμλ΄μ§λ§ μλΉνμ§ μμ
π νμ΄νμ΄ μλ€λ 쑰건μ λ§μ‘±νλ€λ©΄? -\d{4}
νμ΄νκ³Ό μ΄μ΄λμ€λ μ«μ λ€κ°μ μΌμΉν¨
π μ λ°©νμκ³Ό νλ°©νμ(κΈμ νκ³Ό λΆμ ν)μ 쑰건μΌλ‘ μ¬μ©ν μμκ³ else ννμ(μμμ λ΄€λ '| ννμ'κ³Ό λμΌν ꡬ문μ μ¬μ©νμ¬)μΌλ‘λ μ¬μ©ν μμλ€.
π λ κ°λ¨ν λ°©λ²μΌλ‘ λΉμ·ν κ²°κ³Όλ₯Ό μ»μμ μκΈ°μ μ νλ°©νμ 쑰건μ μμ£Όμ¬μ©νμ§ x