βοΈ μ κ· ννμ βοΈ
01. μ κ· ννμ (regex)μ΄λ?
μ κ· ννμ (Regular Expression)μ μ΄λ ν ν
μ€νΈ λ΄μμ νΉμ ν κ·μΉμ κ°μ§ λ¬Έμμ΄(ν¨ν΄)μ κ²μνκ³ μΉννκΈ° μν΄ μ¬μ©νλ νμ μΈμ΄λ₯Ό λ§ν©λλ€.
μ κ· ννμμ κ²μ μμ§, μλ νλ‘μΈμμ λ¬Έμ νΈμ§κΈ°μ μ°Ύμ λ°κΎΈκΈ° λνμμ, κ·Έλ¦¬κ³ sed, AWKμ κ°μ λ¬Έμ μ²λ¦¬ μ νΈλ¦¬ν°, μ΄ν λΆμμ μ¬μ©λκ³ μμ΅λλ€.
[1] μ κ· ννμμ νν
/ μ¬λμ / μμ μ°Ύκ³ μ νλ ν¨ν΄ regex μ μμ±ν©λλ€.
μ΄λ€ μ΅μ μ μν΄μ κ²μν κ²μΈμ§λ₯Ό λνλ΄λ νλκ·Έ i λ₯Ό νμ©ν μ μμ΅λλ€.
___ μ°Έκ³ νκΈ° ___
`1 νλκ·Έ(Expression Flags)μ μ’
λ₯λ global, multiline, case insensitive, single line, unicode, sticky κ° μμ΅λλ€.
μ¬κΈ°μμλ 맀μΉλλ λ€μμ κ²°κ³Όκ°μ κΈ°μ΅νλ global κ³Ό multiline μ μ΄μ©ν©λλ€. β /regex/gm
[2] μ κ· ννμμ μ£Όμ ν¨ν΄
μλμ ν¨ν΄μ 보기 νΈνλλ‘ λμ΄μ°κΈ°λ₯Ό νμμ΅λλ€.
ν¨ν΄ | μ€λͺ |
---|---|
/ Hi / | Hi λ¬Έμμ΄μ κ²μν©λλ€. |
/ Hi | Hello / | Hi λλ Hello λ¬Έμμ΄μ κ²μν©λλ€. ( ' | ' : λλ ) |
/ ( Hi | Hello ) / | ( Hi λλ Hello ) λ¬Έμμ΄μ κ²μν©λλ€. β (κ·Έλ£Ή1) μ§μ λ¨ |
/ ( Hi | Hello ) | ( And ) / | ( Hi λλ Hello ) λλ ( And )μ κ²μν©λλ€. β (κ·Έλ£Ή1) κ³Ό (κ·Έλ£Ή2) μ§μ λ¨ |
/ gr ( a | e ) y / | gr λ‘ μμνκ³ ( a λλ e ) κ° λ€μ΄κ°λ©°, y λ‘ λλλ λ¬Έμμ΄μ κ²μν©λλ€. β grey μ gray λ¬Έμμ΄μ μ°Ύμ, (κ·Έλ£Ή1) μ§μ λ¨ |
/ gr ( ? : a | e ) y / | gr λ‘ μμνκ³ ( a λλ e ) κ° λ€μ΄κ°λ©°, y λ‘ λλλ λ¬Έμμ΄μ κ²μν©λλ€. β gray μ grey λ¬Έμμ΄μ μ°Ύμ§λ§, (κ·Έλ£Ή) μ μ§μ νμ§ μμ ( ' ? : ' κΈ°μ΅νμ§ μμ ) |
/ gr [aed] y / | [ ] λκ΄νΈ μμ λ¬Έμλ₯Ό νλμ© μ μ©νμ¬ κ²μν©λλ€. gr λ‘ μμνκ³ [ a λλ e λλ d ] κ° λ€μ΄κ°λ©°, y λ‘ λλλ λ¬Έμμ΄μ κ²μν©λλ€. ' | λλ ' μ λ§μ΄ μ¬μ©νμ¬ κ·Έλ£Ήμ μ§μ ν μ μκ³ , [ ] λκ΄νΈλ₯Ό μ¬μ©ν μλ μμ β gray, grey, grdy λ¬Έμμ΄μ μ°Ύμ, μ°Έκ³ λ‘ / gr [ abcdef ] y / = / gr [ a-f ] y / κ°μ νν |
[ a-zA-Z0-9 ] | μλ¬Έμ aλΆν° zκΉμ§, λλ¬Έμ AλΆν° ZκΉμ§, μ«μ 0λΆν° 9κΉμ§λ₯Ό λͺ¨λ κ²μν©λλ€. |
[ ^ a-zA-Z0-9 ] | [ ^ λκ΄νΈ μμ λ¬Έμ ] λ₯Ό μ μΈν λ¬Έμμ΄μ κ²μν©λλ€. μλ¬Έμ aλΆν° zκΉμ§, λλ¬Έμ AλΆν° ZκΉμ§, μ«μ 0λΆν° 9κΉμ§λ₯Ό λͺ¨λ μ μΈν λλ¨Έμ§λ₯Ό κ²μν©λλ€. |
/ gra ? y / | ? μμ λ¬Έμκ° μκ±°λ (0) μκ±°λ (1) β gray, gry λ¬Έμμ΄μ μ°Ύμ |
/ gra * y / | * μμ λ¬Έμκ° μκ±°λ (0) μκ±°λ (1) λ§κ±°λ β gry, gray, graay, graaay, ... λ¬Έμμ΄μ μ°Ύμ |
/ gra + y / | + μμ λ¬Έμκ° μκ±°λ (1) λ§κ±°λ β gray, graay, graaay, ... λ¬Έμμ΄μ μ°Ύμ |
/ gra {2} y / | { } μμ λ¬Έμκ° { μ νν μλ } λ§νΌ λμ€λ λ¬Έμμ΄μ μ°Ύμ΅λλ€. β graay |
/ gra {2,3} y / | { } μμ λ¬Έμκ° { μ΅μ, μ΅λ } μλ§νΌ λμ€λ λ¬Έμμ΄μ μ°Ύμ΅λλ€. μ΅λ μμ΄ { μ΅μ, } λ§ μ§μ κ°λ₯ν©λλ€. β graay, graaay |
/ \b at / | ' \b ' λ λ¨μ΄μ μμλΆλΆκ³Ό λλΆλΆμ μμΉν λ¬Έμμ΄μ κ²μν©λλ€. ' \b ' λ₯Ό μ°Ύκ³ μ νλ λ¬Έμμ΄μ μμͺ½μ μ κ³ , λ¨μ΄ μμλΆλΆμ at λ¬Έμμ΄μ μ°Ύμ΅λλ€. β 'at', 'at'tention, 'at'tribute |
/ at \b / | ' \b ' λ₯Ό μ°Ύκ³ μ νλ λ¬Έμμ΄μ μμͺ½μ μ κ³ , λ¨μ΄ λλΆλΆμ at λ¬Έμμ΄μ μ°Ύμ΅λλ€. β flo'at', gre'at', repe'at' |
/ at \B / | \B λ₯Ό μ¬μ©νμ¬ λ¨μ΄μ λλΆλΆμ μ°μ΄μ§ μλ at λ¬Έμμ΄μ λͺ¨λ μ°Ύμ΅λλ€. β 'at', 'at'tention, 'at'tribute, m'at'e, c'at's |
/ ^ sh / | λ¬Έμ₯μ μμλΆλΆμ μμΉν sh λ¬Έμμ΄μ μ°Ύμ΅λλ€. |
/ sh $ / | λ¬Έμ₯μ λλΆλΆμ μμΉν sh λ¬Έμμ΄μ μ°Ύμ΅λλ€. |
/ . / | νλμ λ¬Έμμ΄(λͺ¨λ λ¬Έμμ΄)μ κ²μν©λλ€. 'λ§μΉ¨ν'λ₯Ό μ°Ύκ³ μ ν κ²½μ°, / \ [ . ] { . } / β \ λ‘ μ°ΎκΈ° (νΉμλ¬Έμ μ°ΎκΈ°) |
/ \d / | μ«μλ₯Ό κ²μν©λλ€. |
/ \D / | μ«μλ₯Ό μ μΈν λλ¨Έμ§λ₯Ό κ²μν©λλ€. |
/ \w / | μνλ²³, μ«μ, _λ₯Ό κ²μν©λλ€. |
/ \W / | μνλ²³, μ«μ, _λ₯Ό μ μΈν λλ¨Έμ§λ₯Ό κ²μν©λλ€. |
/ \s / | νλμ 곡백μ κ²μν©λλ€. |
/ \S / | 곡백μ μ μΈνκ³ κ²μν©λλ€. |
[3] μ κ· ννμμΌλ‘ μ°Ύμ보기
# ν μ€νΈ μ€μμ μ νλ²νΈλ§ μ°ΎκΈ°
111-222-3333
212 242 3535
01.544.3930
241*203*3524
β /\d\d\d-\d\d\d-\d\d\d\d/
β /\d{2,3}[- .*]\d{3}-\d{4}
# ν μ€νΈ μ€μμ μ΄λ©μΌλ§ μ°ΎκΈ°
abcde.fghij.klmno@gmail.net
edcba@naver.net
olleh@daum.com
β /[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]+/
'Javascript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ¬Έμμ΄ κ°μ²΄ (3) slice / substring / substr λ©μλ (2) | 2022.08.18 |
---|---|
λ¬Έμμ΄ κ°μ²΄ (2) toUpperCase / toLowerCase / trim / trimStart / trimEnd λ©μλ (2) | 2022.08.18 |
λ¬Έμμ΄ κ°μ²΄ (1) λ¬Έμμ΄ κ²°ν© / ν νλ¦Ώ λ¬Έμμ΄ (4) | 2022.08.17 |
λ΄μ₯ ν¨μ (3) | 2022.08.16 |
λ°°μ΄ κ°μ²΄ (1) (2) | 2022.08.12 |
λκΈ