- English
- EspaΓ±ol
- Français
- PortuguΓͺs do Brasil
- δΈζη
- ζ₯ζ¬θͺ
- νκ΅μ΄
- Turkish
- Greek
- Magyar
- Polish
- Π ΡΡΡΠΊΠΈΠΉ
- TiαΊΏng Viα»t
- ΩΨ§Ψ±Ψ³Ϋ
μ κ·ννμμ ν μ€νΈμμ νΉμ ν¨ν΄μ μ°Ύμλ΄λλ° μ¬μ©λλ λ¬Έμ νΉμ κΈ°νΈλ€μ μ§ν©μ΄λ€.
μ κ·ννμ(Regular expression)μ λμ λ¬Έμμ΄μ μΌμͺ½μμ μ€λ₯Έμͺ½ λ°©ν₯μΌλ‘ 맀μΉλλ νλμ ν¨ν΄μ΄λ€. "Regular expression"μ΄λΌκ³ λ§€λ² λ°μνκΈ° μ΄λ ΅κΈ° λλ¬Έμ, λ³΄ν΅ μ½μ΄λ‘ "regex" νΉμ "regexp", "μ κ·μ"μΌλ‘ μΆμ½λμ΄ μ¬μ©λλ€. μ κ· ννμμ λ¬Έμμ΄ λ΄λΆμ ν μ€νΈ λ체, ν¬λ§·μ μ ν¨μ± κ²μ¬, ν¨ν΄ 맀μΉμ κΈ°λ°μΌλ‘ν λ¬Έμμ΄μμ μΌλΆ ν μ€νΈλ₯Ό μΆμΆ, κ·Έλ¦¬κ³ κ·Έ μΈμ λ€μν λͺ©μ μ μν΄ μ¬μ©λλ€.
λΉμ μ΄ νλμ μ΄ν리μΌμ΄μ μ μμ±νκ³ μκ³ μ¬μ©μκ° μ¬μ©μλͺ μ μ νν λ μ¬μ©λλ κ·μΉλ€μ μ νκ³ μΆλ€κ³ μμν΄λ³΄μ. μλ₯Ό λ€μ΄, μ°λ¦¬λ μ¬μ©μλͺ μ λ¬Έμ, μ«μ, λ°μ€ λ¬Έμ(_), κ·Έλ¦¬κ³ νμ΄νμ΄ ν¬ν¨λλ κ²μ νμ©νκ³ μΆλ€. λν, μ¬μ©μλͺ μ κΈμμλ₯Ό μ νν΄μ μ¬μ©μλͺ μ΄ μ§μ λΆν΄λ³΄μ΄μ§ μλλ‘ νκ³ μΆλ€. μ΄λ μλ μ κ·ννμμ μ¬μ©ν΄ μ λ ₯λ μ¬μ©μλͺ μ΄ ν΄λΉ κ·μΉμ λ§λμ§ κ²μ¬ν μ μλ€.
μμ μ κ· ννμμ john_doe
, jo-hn_doe
, κ·Έλ¦¬κ³ john12_as
λ¬Έμμ΄μ λ°μλ€μΌ μ μλ€. Jo
λ λλ¬Έμλ₯Ό ν¬ν¨νκ³ μκ³ κΈΈμ΄κ° λ무 짧기 λλ¬Έμ μμ μ κ·ννμκ³Ό 맀μΉλμ§ μλλ€.
- κΈ°λ³Έ 맀μ³
- λ©ν λ¬Έμ
- λ¨μΆν λ¬Έμμ΄ μ§ν©
- μ νλ°©νμ
- νλκ·Έ
- [νμμ vs κ²μΌλ₯Έ 맀μΉ](#6-νμμ -vs-κ²μΌλ₯Έ 맀μΉ)
νλμ μ κ· ννμμ λ¨μ§ ν
μ€νΈ λ΄λΆμ κ²μμ μννκΈ° μν λ¬Έμμ΄μ ν¨ν΄μ΄λ€. μλ₯Ό λ€μ΄, μ κ· ννμ the
λ λ¬Έμ t
λ€μμ λ¬Έμ h
, κ·Έ λ€μμ λ¬Έμ e
κ° λμ€λ κ²μ μλ―Ένλ€.
"the" => The fat cat sat on the mat.
μ κ· ννμ 123
μ λ¬Έμμ΄ 123
μ 맀μΉλλ€. μ κ· ννμμ μ κ· ννμμ κ° λ¬Έμ(Character)μ μ
λ ₯λ λ¬Έμμ΄μ κ° λ¬Έμ(Character)λ₯Ό λΉκ΅ν¨μΌλ‘μ¨ ν΄λΉ λ¬Έμμ΄κ³Ό 맀μΉλλ€. μ κ· ννμλ€μ μΌλ°μ μΌλ‘ λμλ¬Έμλ₯Ό ꡬλΆνκΈ° λλ¬Έμ, μ κ· ννμ The
λ λ¬Έμμ΄ the
μ 맀μΉλμ§ μλλ€.
"The" => The fat cat sat on the mat.
λ©ν λ¬Έμλ€μ μ κ· ννμμ λΉλ© λΈλ½λ€μ΄λ€. λ©ν λ¬Έμλ€μ μ체μ μΈ μλ―Έλ₯Ό κ°μ§μ§ μκ³ νΉλ³ν λ°©μμΌλ‘ ν΄μλμ΄μ§λ€. μ΄λ€ λ©ν λ¬Έμμ΄λ€μ νΉλ³ν μλ―Έλ₯Ό κ°μ§λ©° λκ΄νΈμμμ μ°μΈλ€. μλλ μ΄λ¬ν λ©ν λ¬Έμμ΄λ€μ΄λ€:
λ©ν λ¬Έμ | μ€λͺ |
---|---|
. | μ¨μ (Period)λ μ€λ°κΏμ μ μΈν μ΄λ€ μ’ λ₯μ λ¨μΌ λ¬Έμμ 맀μΉ. |
[ ] | λ¬Έμ ν΄λμ€. λκ΄νΈ μ¬μ΄μ μλ λ¬Έμλ€λ‘ 맀μΉ. |
[^ ] | λΆμ λ¬Έμ ν΄λμ€. λκ΄νΈ μμ ν¬ν¨λμ§ μμ λͺ¨λ λ¬Έμλ€λ‘ 맀μΉ. |
* | μ΄ λ©ν λ¬Έμμ λ°λ‘ μμ μλ μ¬λ³Όμ΄ 0λ² μ΄μ λ°λ³΅λ λ¬Έμλ€κ³Ό 맀μΉ. |
+ | μ΄ λ©ν λ¬Έμμ λ°λ‘ μμ μλ μ¬λ³Όμ΄ νλ² μ΄μ λ°λ³΅λ λ¬Έμλ€κ³Ό 맀μΉ. |
? | μ΄ λ©ν λ¬Έμμ λ°λ‘ μμ μλ μ¬λ³Όμ μ νμ (optional)μΌλ‘ λ§λ¬. |
{n,m} | μ€κ΄νΈ. μ΄ λ©ν λ¬Έμμ λ°λ‘ μμ μμΉν μ¬λ³Όμ΄ μ΅μ nλ² μ΅λ mλ²μ λ°λ³΅λ λ¬Έμλ€κ³Ό 맀μΉ. |
(xyz) | λ¬Έμ κ·Έλ£Ή. λ¬Έμμ΄ xyzμ μ νν κ°μ μμλ₯Ό κ°μ§ λ¬Έμλ€κ³Ό 맀μΉ. |
| | λμ. λ¬Έμκ° μ΄ λ©ν λ¬Έμμ μμ μλ μ¬λ³Όμ΄κ±°λ λ€μ μλ μ¬λ³Όμ΄λ©΄ 맀μΉ. |
\ | λ€μ λ¬Έμ μ΄μ€μΌμ΄ν(Escape). μμ½λ λ¬Έμμ΄λ€ [ ] ( ) { } . * + ? ^ $ \ | μ μ΄μ€μΌμ΄νν¨μΌλ‘μ¨ κ·Έ μ체μ 맀μΉλλ κ²μ νμ©. |
^ | μ λ ₯μ μμκ³Ό 맀μΉ. |
$ | μ λ ₯μ λκ³Ό 맀μΉ. |
λ§μΉ¨ν(.
)λ λ©ν λ¬Έμμ κ°μ₯ κ°λ¨ν μλ€. λ©ν λ¬Έμ .
λ μ΄λ ν λ¨μΌ λ¬Έμμλ 맀μΉλμ§λ§ λ¦¬ν΄ νΉμ κ°ν λ¬Έμμλ 맀μΉλμ§ μλλ€. μλ₯Ό λ€μ΄, μ κ· ννμ .ar
μ μ΄λ ν λ¨μΌ λ¬Έμ λ€μμ λ¬Έμ a
κ° μ€κ³ , κ·Έ λ€μμ λ¬Έμ r
μ΄ μ€λ ν¨ν΄μ μλ―Ένλ€.
".ar" => The car parked in the garage.
λ¬Έμ μ§ν©μ λ¬Έμ ν΄λμ€λΌκ³ λ λΆλ¦°λ€. λκ΄νΈλ μ΄ λ¬Έμ μ§ν©μ λͺ
μνκΈ° μν΄ μ¬μ©λλ€. λ¬Έμμ΄ μ§ν©λ΄μ μ¬μ©λ νμ΄νμ λ¬Έμλ€μ λ²μλ₯Ό μ§μ νλλ° μ¬μ©λλ€. λκ΄νΈ λ΄λΆμ λͺ
μλ λ¬Έμλ€μ μμλ μ€μνμ§ μλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [Tt]he
λ λλ¬Έμ T
νΉμ μλ¬Έμ t
κ° λμ¨ λ€μμ, λ¬Έμ h
κ° λμ€κ³ κ·Έ λ€μ λ¬Έμ e
κ° λμ€λ ν¨ν΄μ μλ―Ένλ€.
"[Tt]he" => The car parked in the garage.
νμ§λ§, λ¬Έμ μ§ν© λ΄λΆμμ μ¬μ©λλ μ¨μ (Period)μ μ¨μ κ·Έ μ체λ₯Ό μλ―Ένλ€. μ κ· ννμ ar[.]
μ μλ¬Έμ a
λ€μμ λ¬Έμ r
μ΄ μ€κ³ κ·Έ λ€μ λ¬Έμ .
μ΄ μ€λ ν¨ν΄μ μλ―Ένλ€.
"ar[.]" => A garage is a good place to park a car.
μΌλ°μ μΌλ‘, μΊλΏ κΈ°νΈ(^)λ λ¬Έμμ΄μ μμμ§μ μ λνλ΄μ§λ§, μΌμͺ½ λκ΄νΈ λ°λ‘ λ€μ μμΉνμλλ ν΄λΉ λ¬Έμ μ§ν©μ λΆμ (negation)μ λνλΈλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [^c]ar
μ λ¬Έμ c
λ₯Ό μ μΈν μ΄λ ν λ¬Έμλ€μ λ¬Έμ a
κ° μ€κ³ , κ·Έ λ€μ λ¬Έμ r
μ΄ μ€λ ν¨ν΄μ μλ―Ένλ€.
"[^c]ar" => The car parked in the garage.
λ©ν λ¬Έμ +
, *
λλ ?
μ νμν¨ν΄(subpattern)μ΄ λͺ λ² λ°μνλμ§ μ§μ νλλ° μ¬μ©λλ€. μ΄λ¬ν λ©ν λ¬Έμλ€μ μν©μ λ°λΌ λ€λ₯΄κ² λμνλ€.
*
λΆνΈλ λΆνΈ μμ μμΉν 맀μ²(matcher)κ° 0λ² μ΄μ λ°λ³΅λ λ¬Έμμ΄κ³Ό 맀μΉλλ€. μ κ· ννμ a*
μ μλ¬Έμ a
κ° 0λ² μ΄μ λ°λ³΅λλ ν¨ν΄μ μλ―Ένλ€. νμ§λ§, λ§μ½ μ΄ λ³ λΆνΈκ° λ¬Έμ μ§ν©(character set) μ§νμ λμ€λ κ²½μ°μλ λ¬Έμ μ§ν© μ 체μ λ°λ³΅μ μ°Ύκ²λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [a-z]*
μ μλ¬Έμλ€μ΄ κ°―μμ μκ΄μμ΄ μ°μμΌλ‘ λ°λ³΅λλ ν¨ν΄μ μλ―Ένλ€.
"[a-z]*" => The car parked in the garage #21.
*
λΆνΈλ λ©ν λ¬Έμ .
μ ν¨κ» λͺ¨λ λ¬Έμμ΄κ³Ό 맀μΉλλ ν¨ν΄μ λ§λλλ° μ¬μ©λ μ μλ€. λν, *
λΆνΈλ 곡백 λ¬Έμ \s
μ ν¨κ» 곡백 λ¬Έμλ€λ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄κ³Ό 맀μΉλλ ν¨ν΄μ λ§λλλ° μ¬μ©λ μ μλ€. μλ₯Ό λ€μ΄, μ κ· ννμ \s*cat\s*
λ 0λ² μ΄μ 곡백문μκ° λμ¨ μ΄νμ μλ¬Έμ c
, μλ¬Έμ a
, μλ¬Έμ t
κ° μμ²΄λ‘ λμ€κ³ κ·Έ λ€μ λ€μ 0λ² μ΄μμ 곡백문μκ° λμ€λ ν¨ν΄μ μλ―Ένλ€.
"\s*cat\s*" => The fat cat sat on the concatenation.
+
λΆνΈλ λΆνΈ μμ μμΉν λ¬Έμκ° νλ² μ΄μ λ°λ³΅λλ ν¨ν΄μ λ§λλλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ c.+t
λ μλ¬Έμ c
κ° λμ€κ³ , κ·Έ λ€μ νκ° μ΄μμ λ¬Έμκ° λμ¨ ν, μλ¬Έμ t
κ° λμ€λ ν¨ν΄μ μλ―Ένλ€. μ¬κΈ°μ λ¬Έμ t
λ ν΄λΉ λ¬Έμ₯μ μ μΌ λ§μ§λ§ κΈμ t
λΌλκ²μ λͺ
ννν νμκ° μλ€.
"c.+t" => The fat cat sat on the mat.
μ κ· ννμμμ λ©ν λ¬Έμ ?
λ μ ν λ¬Έμλ₯Ό μ νμ μΌλ‘ λ§λλ μν μ νλ€. λ¬Όμνλ λΆνΈ μμ μ°μ¬μ§ λ¬Έμκ° μ νμ μΌλ‘ λμ€λ ν¨ν΄μ λνλ΄λλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [T]?he
λ λλ¬Έμ T
κ° μ νμ μΌλ‘ λμ¨ μ΄νμ, κ·Έ λ€μ μλ¬Έμ h
, κ·Έ λ€μ μλ¬Έμ e
κ° λμ€λ ν¨ν΄μ μλ―Ένλ€.
"[T]he" => The car is parked in the garage.
"[T]?he" => The car is parked in the garage.
μ κ· ννμμμ μ λμ(quantifier)λΌκ³ λ λΆλ¦¬λ μ€κ΄νΈλ νλμ λ¬Έμ νΉμ λ¬Έμ μ§ν©μΌλ‘ νμλ λ¬Έμκ° λͺλ² λ°λ³΅λλμ§ λͺ
μνλλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [0-9]{2,3}
μ μ«μ λ¬Έμ(0λΆν° 9μ¬μ΄μ λ¬Έμ)κ° μ΅μ 2λ², μ΅λ 3λ² μ°μν΄μ λμ€λ λ¬Έμμ΄ ν¨ν΄μ μλ―Ένλ€.
"[0-9]{2,3}" => The number was 9.9997 but we rounded it off to 10.0.
λλ²μ§Έ μ«μλ₯Ό μλ΅νλ κ²μ΄ κ°λ₯νλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [0-9]{2,}
λ 2λ² μ΄μμ μ«μκ° μ°μμΌλ‘ λμ€λ ν¨ν΄μ μλ―Ένλ€. λ§μ½ μ¬κΈ°μ μΌνλ₯Ό μμ νλ κ²½μ°, μ κ· ννμ [0-9]{3}
μ μ«μκ° μ νν 3λ² μ°μν΄μ λμ€λ ν¨ν΄μ μλ―Ένλ€.
"[0-9]{2,}" => The number was 9.9997 but we rounded it off to 10.0.
"[0-9]{3}" => The number was 9.9997 but we rounded it off to 10.0.
μΊ‘μ³λ§ κ·Έλ£Ήμ κ΄νΈ (...)
μμ μ°μ¬μ§ νμ ν¨ν΄λ€μ κ·Έλ£Ήμ΄λ€. μμμ λ
Όμνλ―μ΄, μ κ· ννμμμ νλμ λ¬Έμ λ€μ μ λμ(quantifier)λ₯Ό λ£λ κ²½μ°μλ ν΄λΉ λ¬Έμμ λ°λ³΅μ λνλΈλ€. νμ§λ§, λ§μ½ νλμ μΊ‘μ³λ§ κ·Έλ£Ή λ€μ μ λμλ₯Ό λ£λ κ²½μ°μλ μΊ‘μ³λ§ κ·Έλ£Ή μ 체μ λ°λ³΅μ λνλ΄κ² λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ (ab)*
λ λ¬Έμ "ab"κ° 0λ² μ΄μ λ°λ³΅λλ ν¨ν΄μ μλ―Ένλ€. λμ λΆνΈμΈ |
λν λ¬Έμ κ·Έλ£Ή λ΄λΆμμ μ¬μ©ν μ μλ€. μλ₯Ό λ€μ΄, μ κ· ννμ (c|g|p)ar
μ μλ¬Έμ c
, g
νΉμ p
κ° λμ¨ μ΄νμ λ¬Έμ a
κ° λμ€κ³ κ·Έ λ€μ λ¬Έμ r
μ΄ λμ€λ ν¨ν΄μ μλ―Ένλ€.
"(c|g|p)ar" => The car is parked in the garage.
μΊ‘μ²λ§ κ·Έλ£Ήμ λΆλͺ¨ μΈμ΄μμ μ¬μ©νκΈ° μν΄ λ¬Έμλ₯Ό μΌμΉμν¬λΏλ§ μλλΌ λ¬Έμλ₯Ό μΊ‘μ²νλ€λ μ μ μ μν΄μΌ νλ€. λΆλͺ¨ μΈμ΄λ νμ΄μ¬μ΄λ μλ° μ€ν¬λ¦½νΈ λλ ν¨μ μ μμμ μ κ· ννμμ ꡬννλ κ±°μ λͺ¨λ μΈμ΄κ° λ μ μλ€.
λ
Ό-μΊ‘μ³λ§ κ·Έλ£Ήμ μ€μ§ λ¬Έμμ΄μ 맀μΉλμ§λ§, κ·Έλ£Ήμ μΊ‘μ³νμ§ μλ μΊ‘μ³λ§ κ·Έλ£Ήμ΄λ€. λ
Ό-μΊ‘μ³λ§ κ·Έλ£Ήμ (...)
κ΄νΈμμ ?:
λ‘ νμλλ€. μλ₯Ό λ€μ΄ μ κ·μ (?:c|g|p)ar
λ (c|g|p)ar
μ κ°μ λ¬Έμμ΄μ 맀μΉνλ κ²μμ μ μ¬νμ§λ§, μΊ‘μ³λ§ κ·Έλ£Ήμ λ§λ€μ§ μλλ€.
"(?:c|g|p)ar" => The car is parked in the garage.
λ Ό-μΊ‘μ²λ§ κ·Έλ£Ήμ μ°ΎκΈ° λ° λ³κ²½ κΈ°λ₯μμ μ¬μ©νκ±°λ μΊ‘μ² κ·Έλ£Ή ν¨κ» μ¬μ©νμ¬ λ€λ₯Έ μ’ λ₯μ μΆλ ₯ μμ±μ overviewλ₯Ό μ μ§ν λ μ μ©νλ€. λν 4. μ νλ°©νμλ₯Ό 보μλΌ.
μ κ· ννμμμ μμ§ λ§λ λΆνΈ |
λ λμμ μ μνλλ° μ¬μ©λλ€. λμ λΆνΈλ μ¬λ¬κ°μ ννμλ€ μ¬μ΄μ 쑰건과λ κ°λ€. μ§κΈμ―€ λΉμ μ λ¬Έμ μ§ν©(Character set)κ³Ό λμ λΆνΈκ° λμΌνκ² λμνλ€κ³ μκ°νκ³ μμ κ²μ΄λ€. νμ§λ§, λ¬Έμ μ§ν©κ³Ό λμ λΆνΈ μ¬μ΄μ κ°μ₯ ν° μ°¨μ΄μ μ λ¬Έμ μ§ν©μ λ¬Έμ μμ€μμ λμνλ λ°λ©΄, λμ λΆνΈλ ννμ μμ€μμ λμνλ€λ κ²μ΄λ€. μλ₯Ό λ€μ΄, μ κ· ννμ (T|t)he|car
λ λλ¬Έμ T
νΉμ μλ¬Έμ t
κ° λμ€κ³ λ¬Έμ h
, λ¬Έμ e
κ° μ°¨λ‘λ‘ λμ€κ±°λ λ¬Έμ c
, λ¬Έμ a
, λ¬Έμ r
μ΄ μ°¨λ‘λ‘ λμ€λ ν¨ν΄μ μλ―Ένλ€.
"(T|t)he|car" => The car is parked in the garage.
λ°± μ¬λμ \
λ μ κ· ννμμμ λ€μμ λμ€λ λΆνΈλ₯Ό μ΄μ€μΌμ΄ννλλ° μ¬μ©λλ€. λ°± μ¬λμλ μμ½ λ¬Έμλ€μΈ { } [ ] / \ + * . $ ^ | ?
λ₯Ό λ©ν λΆνΈκ° μλ λ¬Έμ κ·Έ μμ²΄λ‘ λ§€μΉλλλ‘ λͺ
μνλ€. νΉμ λ¬Έμλ₯Ό λ§€μΉ μΊλ¦ν°λ‘ μ¬μ©νκΈ° μν΄μλ λ°± μ¬λμ \
λ₯Ό ν΄λΉ νΉμ λ¬Έμ μμ λΆμ΄λ©΄ λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ .
μ κ°νμ μ μΈν μ΄λ€ λ¬Έμμ 맀μΉλλ€. μ
λ ₯ λ¬Έμμ΄μ ν¬ν¨λ .
λ¬Έμλ₯Ό 맀μΉμν€λ μ κ· ννμ (f|c|m)at\.?
μ μλ¬Έμ f
, c
λλ m
μ΄νμ μλ¬Έμ a
μ t
κ° μ°¨λ‘λ‘ λ±μ₯νκ³ μ΄νμ λ¬Έμ .
κ° μ νμ μΌλ‘ λνλλ ν¨ν΄μ μλ―Ένλ€.
"(f|c|m)at\.?" => The fat cat sat on the mat.
μ κ· ννμμμ μ΅μ»€λ λ§€μΉ λ¬Έμκ° ννμμ μμ λ¬ΈμμΈμ§ νΉμ λ λ¬ΈμμΈμ§ λͺ
μνλλ° μ¬μ©λλ€. μ΅μ»€λ λκ°μ§ μ’
λ₯κ° μλ€: 첫λ²μ§Έ μ’
λ₯μΈ μΊλΏ λΆνΈ ^
λ λ§€μΉ λ¬Έμκ° μ
λ ₯ λ¬Έμμ΄μ 첫 μμ λ¬ΈμμΈμ§ λνλ΄λλ° μ¬μ©λλ©° λλ²μ§Έ μ’
λ₯μΈ λ¬λ¬ λΆνΈ $
λ ν΄λΉ λ§€μΉ λ¬Έμκ° μ
λ ₯ λ¬Έμμ λ§μ§λ§ λ¬ΈμλΌλ κ²μ λͺ
μνλλ° μ¬μ©λλ€.
μΊλΏ λΆνΈ ^
λ λ§€μΉ λ¬Έμκ° ννμμ μμμ΄λΌλ κ²μ λͺ
μνλλ° μ¬μ©λλ€. λ§μ½ (aκ° μμ λ¬ΈμμΈμ§ νμΈνλ) μ κ· ννμ ^a
λ₯Ό μ
λ ₯ λ¬Έμμ΄ abc
μ μ μ©νλ©΄, μ΄ μ κ· ννμμ a
λ₯Ό λ§€μΉ κ²°κ³Όκ°μΌλ‘ λ΄λ³΄λΈλ€. λ°λ©΄, μ κ· ννμ ^b
λ₯Ό μμ μ
λ ₯ λ¬Έμμ΄μ μ μ©νλ©΄, μλ¬΄λ° λ§€μΉλ μΌμ΄λμ§ μλλ€. μλνλ©΄ μ
λ ₯ λ¬Έμμ΄ abc
μμ "b"λ μ²μ μμ λ¬Έμκ° μλκΈ° λλ¬Έμ΄λ€. λ λ€λ₯Έ μ κ· ννμμΈ ^(T|t)he
λ₯Ό μ΄ν΄λ³΄μ. μ΄ μ κ· ννμμ λλ¬Έμ T
λλ μλ¬Έμ t
κ° μ
λ ₯ λ¬Έμμ΄μ μμμΌλ‘ λμ€κ³ , κ·Έ λ€μ λ¬Έμ h
μ λ¬Έμ e
κ° μ°¨λ‘λ‘ λμ€λ ν¨ν΄μ μλ―Ένλ€.
"(T|t)he" => The car is parked in the garage.
"^(T|t)he" => The car is parked in the garage.
λ¬λ¬ λΆνΈ $
λ μ
λ ₯ λ¬Έμμ΄μ λ§μ§λ§ λ¬Έμκ° λ§€μΉ λ¬Έμλ‘ λλλμ§ νμΈνλλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ (at\.)$
λ μλ¬Έμ a
μ t
κ·Έλ¦¬κ³ λ¬Έμ .
κ° μμλλ‘ μ
λ ₯ λ¬Έμμ΄μ 맨 λ§μ§λ§μ λμ€λμ§ νμΈνλ ν¨ν΄μ μλ―Ένλ€.
"(at\.)" => The fat cat. sat. on the mat.
"(at\.)$" => The fat cat. sat. on the mat.
μ κ· ννμμ μΌλ°μ μΌλ‘ μ¬μ©λλ λ¬Έμμ΄ μ§ν©λ€μ κ°νΈνκ² μ¬μ©ν μ μλλ‘ μ¬λ¬ λ¨μΆνλ€μ μ 곡νλ€. λ¨μΆν λ¬Έμμ΄ μ§ν©μ μλμ κ°λ€.
λ¨μΆν | μ€λͺ |
---|---|
. | κ°νμ μ μΈν λͺ¨λ λ¬Έμ |
\w | μμ«μ λ¬Έμμ 맀μΉ: [a-zA-Z0-9_] |
\W | μμ«μ λ¬Έμκ° μλ λ¬Έμμ 맀μΉ: [^\w] |
\d | μ«μμ 맀μΉ: [0-9] |
\D | μ«μκ° μλ λ¬Έμμ 맀μΉ: [^\d] |
\s | 곡백 λ¬Έμμ 맀μΉ: [\t\n\f\r\p{Z}] |
\S | 곡백 λ¬Έμκ° μλ λ¬Έμμ 맀μΉ: [^\s] |
λλλ‘ μ νλ°©νμLookaroundμ΄λΌκ³ μλ €μ§ νλ°©νμLookbehindκ³Ό μ λ°©νμLookaheadμ (ν¨ν΄ 맀μΉμ μν΄μ μ¬μ©λμ§λ§ 맀μΉλ 리μ€νΈμλ ν¬ν¨λμ§ μλ) λ-μΊ‘μ³λ§ κ·Έλ£Ή μ νΉμ μ’
λ₯λ€μ΄λ€. μ νλ°©νμμ νλμ ν¨ν΄μ΄ λ€λ₯Έ νΉμ ν¨ν΄ μ μ΄λ νμ λνλλ 쑰건μ κ°μ§κ³ μμλ μ¬μ©νλ€. μλ₯Ό λ€μ΄, μ°λ¦¬κ° μ
λ ₯ λ¬Έμμ΄ $4.44 and $10.88
μ λν΄μ λ¬λ¬ λΆνΈ $
μ΄νμ λμ€λ λͺ¨λ μ«μλ₯Ό 맀μΉμν€κ³ μΆλ€κ³ νμ. μ΄λ μ κ· ννμ (?<=\$)[0-9\.]*
λ₯Ό μ¬μ©ν μ μλ€. μ΄ μ κ· ννμμ $
λ¬Έμ λ€μ λμ€λ λ¬Έμ .
μ ν¬ν¨ν λͺ¨λ μ«μ λ¬Έμλ₯Ό μλ―Ένλ€. λ€μμ μ κ· ννμμμ μ¬μ©λλ μ νλ°©νμλ€μ΄λ€.
λΆνΈ | μ€λͺ |
---|---|
?= | κΈμ ν μ λ°©νμ |
?! | λΆμ ν μ λ°©νμ |
?<= | κΈμ ν νλ°©νμ |
?<! | λΆμ ν νλ°©νμ |
κΈμ ν μ λ°©νμλ ννμμ 첫 λΆλΆλ€μ μ λ°©νμ ννμμ΄ λ€λ°λΌ λμ€λμ§ νμΈνλλ° μ¬μ©λλ€. 맀μΉμ κ²°κ³Όκ°μ ννμμ 첫 λΆλΆκ³Ό 맀μΉλ ν
μ€νΈλ§μ΄ ν¬ν¨λλ€. κΈμ ν μ λ°©νμλ₯Ό μ μνκΈ° μν΄μλ κ΄νΈκ° μ¬μ©λλ€. μ΄ κ΄νΈ μμμ, λ¬Όμν λΆνΈ ?
μ λ±νΈ =
κ° λ€μκ³Ό κ°μ΄ μ¬μ©λλ€: (?=...)
. μ λ°©νμ ννμμ κ΄νΈ λ΄λΆμ λ±νΈ =
λΆνΈ λ€μ μ°λ©΄λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ [T|t]he(?=\sfat)
λ λλ¬Έμ T
νΉμ μλ¬Έμ t
λ€μ λ¬Έμ h
, λ¬Έμ e
κ° λμ€λ ν¨ν΄μ μλ―Ένλ€. κ΄νΈ μμμ μ°λ¦¬λ μ κ· ννμ μμ§μκ² λ°λ‘ λ€μ 곡백문μμ λ¬Έμμ΄ fat
μ΄ λμ€λ The
λλ the
λ§ λ§€μΉνλλ‘ μ리λ κΈμ ν μ λ°©νμλ₯Ό μ μνμλ€.
"[T|t]he(?=\sfat)" => The fat cat sat on the mat.
λΆμ ν μ λ°©νμλ μ
λ ₯ λ¬Έμμ΄λ‘λΆν° νΉμ ν¨ν΄μ΄ λ€μ λμ€μ§ μκΈ°λ₯Ό λ°λΌλ μν©μμ μ¬μ©λλ€. λΆμ ν μ λ°©νμλ μ°λ¦¬κ° κΈμ ν μ λ°©νμλ₯Ό μ μνλ λ°©μκ³Ό λμΌνκ² μ μλλ€. νμ§λ§, μ μΌν μ°¨μ΄μ μ λ±νΈ λΆνΈ =
λμ λΆμ λΆνΈ !
λ¬Έμλ₯Ό μ¬μ©νλ€λ κ²μ΄λ€, μ¦ (?!...)
. μ κ· ννμ [T|t]he(?!\sfat)
λ₯Ό μ΄ν΄λ³΄λλ‘ νμ. μ΄ μ κ· ννμμ 곡백 λ¬Έμμ fat
λ¬Έμμ΄μ΄ μ°μμΌλ‘ λμ€μ§ μλ λͺ¨λ The
νΉμ the
λ¬Έμμ΄κ³Ό 맀μΉλλ€.
"[T|t]he(?!\sfat)" => The fat cat sat on the mat.
κΈμ ν νλ°©νμλ νΉμ ν¨ν΄λ€μ λμ€λ λ¬Έμμ΄ λ§€μΉλ₯Ό κ°μ Έμ€κΈ° μν΄μ μ¬μ©λλ€. κΈμ ν νλ°©νμλ (?<=...)
λ‘ νμλλ€. μλ₯Ό λ€μ΄, μ κ· ννμ (?<=[T|t]he\s)(fat|mat)
λ μ
λ ₯ λ¬Έμμ΄μμ The
νΉμ the
λ€μ κ³΅λ°±μ΄ λμ€κ³ , κ·Έ λ€μ fat
λλ mat
μ΄ λμ€λ ν¨ν΄μ μλ―Ένλ€.
"(?<=[T|t]he\s)(fat|mat)" => The fat cat sat on the mat.
λΆμ ν νλ°©νμλ νΉμ ν¨ν΄μ΄ λ€μ λμ€μ§ μκΈ°λ₯Ό λ°λΌλ μν©μμ μ¬μ©λλ€. λΆμ ν νλ°©νμλ (?<!...)
λ‘ νμλλ€. μλ₯Ό λ€μ΄, μ κ· ννμ (?<!(T|t)he\s)(cat)
μ μμ The
νΉμ the
κ° μμΉνμ§ μλ λͺ¨λ cat
λ¬Έμμ΄μ μλ―Ένλ€.
"(?<![T|t]he\s)(cat)" => The cat sat on cat.
νλκ·Έλ μ κ·ννμμ μΆλ ₯κ°μ μμ νκΈ° λλ¬Έμ μμ μ(modifier)λΌκ³ λ λΆλ¦°λ€. μ΄λ¬ν νλκ·Έλ€μ μ΄λ€ μμ νΉμ μ‘°ν©μΌλ‘ μ¬μ© κ°λ₯νλ©° μ κ· ννμμ μΌλΆλΆμ΄λ€.
νλκ·Έ | μ€λͺ |
---|---|
i | λμλ¬Έμ ꡬλΆμμ: 맀μΉμ΄ λμλ¬Έμλ₯Ό ꡬλΆνμ§ μλλ‘ μ€μ . |
g | μ 체 κ²μ: μ λ ₯ λ¬Έμμ΄ μ 체λ₯Ό λμμΌλ‘ ν¨ν΄μ κ²μ. |
m | λ©ν° λΌμΈ: μ΅ν° λ©ν λ¬Έμκ° κ° μ€λ§λ€ λμνλλ‘ μ€μ . |
μμ μ i
λ λμλ¬Έμ ꡬλΆμλ 맀μΉμ μννλλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ /The/gi
λ λλ¬Έμ T
, μλ¬Έμ h
, μλ¬Έμ e
κ° μ°¨λ‘λ‘ λμ€λ ν¨ν΄μ μλ―Ένλ€. μ¬κΈ°μ μ κ· ννμ λ§μ§λ§μ μλ i
νλκ·Έκ° μ κ· ννμ μμ§μκ² λμλ¬Έμλ₯Ό ꡬλΆνμ§ μλλ‘ μλ €μ€λ€. g
νλκ·Έλ μ 체 μ
λ ₯ λ¬Έμμ΄ λ΄λΆμμ ν¨ν΄μ κ²μνκΈ° μν΄ μ€μ λμλ€.
"The" => The fat cat sat on the mat.
"/The/gi" => The fat cat sat on the mat.
μμ μ g
λ 첫λ²μ§Έ 맀μΉνμ λ©μΆμ§ μκ³ κ³μν΄μ λͺ¨λ 맀μΉμ κ²μνλ μ 체 κ²μμ μννλλ° μ¬μ©λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ /.(at)/g
λ κ°νμ μ μΈν λ¬Έμκ° λμ€κ³ , κ·Έ λ€μ μλ¬Έμ a
, μλ¬Έμ t
κ° λμ€λ ν¨ν΄μ μλ―Ένλ€. μ¬κΈ°μμ g
νλκ·Έλ₯Ό μ κ· ννμμ λ§μ§λ§μ μ€μ νκΈ° λλ¬Έμ, μ΄ ν¨ν΄μ μ
λ ₯ λ¬Έμμ΄ μ 체μμ λνλλ λͺ¨λ ν¨ν΄μ μ°ΎμλΈλ€.
"/.(at)/" => The fat cat sat on the mat.
"/.(at)/g" => The fat cat sat on the mat.
μμ μ m
μ λ©ν° λΌμΈ 맀μΉλ₯Ό μννλλ° μ¬μ©λλ€. μ΄μ μ μ΄μΌκΈ° νλ κ²μ²λΌ, μ΅μ»€ (^, $)
λ ν¨ν΄μ μμκ³Ό λμ νμΈνλλ° μ¬μ©λλ€. νμ§λ§ λ§μ½ μ°λ¦¬κ° κ° λΌμΈλ§λ€ μ΄ μ΅μ»€κ° λμνκ²νκ³ μΆμΌλ©΄ m
νλκ·Έλ₯Ό μ€μ νλ©΄λλ€. μλ₯Ό λ€μ΄, μ κ· ννμ /at(.)?$/gm
μ μλ¬Έμ a
μ μλ¬Έμ t
κ° μ°¨λ‘λ‘ λμ€κ³ , μ νμ μΌλ‘ κ°νμ μ μΈν λ¬Έμκ° λμ€λ ν¨ν΄μ μλ―Ένλ€. μ¬κΈ°μ νλκ·Έ m
μΌλ‘ μΈν΄μ μ κ· ννμ μμ§μ μ
λ ₯ λ¬Έμμ΄μ κ° λΌμΈμ λν΄μ ν΄λΉ ν¨ν΄μ 맀μΉνκ² λλ€.
"/.at(.)?$/" => The fat cat sat on the mat.
"/.at(.)?$/gm" => The fat cat sat on the mat.
κΈ°λ³Έμ μΌλ‘ μ κ· ννμμ νμμ (greedy) 맀μΉμ μννλλ°, μ΄λ κ°λ₯ν ν κΈΈκ² λ§€μΉνλ κ²μ μλ―Ένλ€. μ°λ¦¬λ ?
λ₯Ό μ¬μ©νμ¬ κ²μΌλ₯Έ(lazy) λ°©λ² λ§€μΉν μ μμΌλ©°, κ°λ₯ν ν μ§§κ² λ§€μΉνλ κ²μ μλ―Ένλ€.
"/(.*at)/" => The fat cat sat on the mat.
"/(.*?at)/" => The fat cat sat on the mat.
- μ΄μ 리ν¬ν
- μ½λ κ°μ ν΄μ ν 리νμ€νΈ μ΄κΈ°
- μλ¬Έλ΄κΈ°
- [email protected] λ©μΌλ‘ μ§μ μ°λ½νκΈ° λλ
MIT Β© Zeeshan Ahmad