πͺ
23μΌμ°¨
Part 4. JavaScript Level up
Ch 3. μ κ·ννμ
Ch 3. μ κ·ννμ
λ΄μ©
π μ κ·μ μμ±
https://heropy.blog/2018/10/28/regexp/
# μ κ·ννμ (RegExp)
μ κ·μ, Regular Expression
## μν
- λ¬Έμ κ²μ(search)
- λ¬Έμ λ체(replace)
- λ¬Έμ μΆμΆ(extract)
## ν μ€νΈ μ¬μ΄νΈ
## μ κ·μ μμ±
// μμ±μ
new RegExp('νν', 'μ΅μ
')
new RegExp('[a-z]', 'gi')
// 리ν°λ΄
/νν/μ΅μ
/[a-z]/gi
π λ©μλ
## λ©μλ
λ©μλ | λ¬Έλ² | μ€λͺ |
test | μ κ·μ.test(λ¬Έμμ΄) | μΌμΉ μ¬λΆ(Boolean) λ°ν |
match | λ¬Έμμ΄.match(μ κ·μ) | μΌμΉνλ λ¬Έμμ λ°°μ΄(Array) λ°ν |
replace | λ¬Έμμ΄.replace(μ κ·μ, λ체문μ) | μΌμΉνλ λ¬Έμλ₯Ό λ체 |
let str = `
010-1234-5678
thesecon@gmail.com
https://www.omdbapi.com?/apikey=7035c60c&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`;
// μμ±μ λ°©μ
//const regexp = new RegExp("the", "gi");
// 리ν°λ΄ λ°©μ
const regexp = /fox/gi;
console.log(regexp.test(str)); // μΌμΉ μ¬λΆ(Boolen) λ°ν
console.log(str.match(regexp)); // μΌμΉνλ λ¬Έμμ λ°°μ΄(Array) λ°ν
str = str.replace(regexp, "AAA"); // μΌμΉνλ λ¬Έμλ₯Ό λ체
console.log(str);
π νλκ·Έ(μ΅μ )
νλκ·Έ | μ€λͺ |
g | λͺ¨λ λ¬Έμ μΌμΉ(global) => λͺ¨λ λ¬Έμλ₯Ό λ€ μ°ΎμλΌ! |
i | μμ΄ λμλ¬Έμλ₯Ό κ΅¬λΆ μκ³ μΌμΉ(ignore case) |
m | μ¬λ¬ μ€ μΌμΉ(multi line) => κ°κ°μ μ€μ νλμ μμκ³Ό λμΌλ‘ λ³΄κ² λ€. |
let str = `
010-1234-5678.
thesecon@gmail.com
https://www.omdbapi.com?/apikey=7035c60c&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`;
// \: μ΄μ€μΌμ΄ν λ¬Έμλ \(λ°±μ¬λμ) κΈ°νΈλ₯Ό ν΅ν΄ λ³Έλμ κΈ°λ₯μμ λ²μ΄λ μνκ° λ°λλ λ¬Έμμ΄λ€.
console.log(str.match(/\.$/gim));
π ν¨ν΄(νν)
ν¨ν΄ | μ€λͺ |
^ab | μ€(Line) μμμ μλ abμ μΌμΉ |
ab$ | μ€(Line) λμ μλ abμ μΌμΉ |
. | μμμ ν λ¬Έμμ μΌμΉ |
a|b | a λλ bμ μΌμΉ |
ab? | bκ° μκ±°λ bμ μΌμΉ |
{3} | 3κ° μ°μ μΌμΉ |
{3,} | 3κ° μ΄μ μ°μ μΌμΉ |
{3,5} |
3κ° μ΄μ 5κ° μ΄ν(3~5κ°) μ°μ μΌμΉ |
[abc] | a λλ b λλ c |
[a-z] | aλΆν° z μ¬μ΄μ λ¬Έμ ꡬκ°μ μΌμΉ (μμ΄ μλ¬Έμ) |
[A-Z] | AλΆν° Z μ¬μ΄μ λ¬Έμ ꡬκ°μ μΌμΉ (μμ΄ λλ¬Έμ) |
[0-9] | 0λΆν° 9 μ¬μ΄μ λ¬Έμ ꡬκ°μ μΌμΉ (μ«μ) |
[κ°-ν£] | κ°λΆν° ν£ μ¬μ΄μ λ¬Έμ ꡬκ°μ μΌμΉ (νκΈ) |
\w | 63κ° λ¬Έμ(Word, λμμλ¬Έ52κ°, μ«μ10κ° + _)μ μΌμΉ |
\b | 63κ° λ¬Έμμ μΌμΉνμ§ μλ λ¬Έμ κ²½κ³(Boundary) |
\d | μ«μ(Digit)μ μΌμΉ |
\s | 곡백(Space, Tab λ±)μ μΌμΉ |
(?=) | μμͺ½ μΌμΉ(Lookahead) |
(?<=) | λ€μͺ½ μΌμΉ(Lookbehind) |
let str = `
010-1234-5678
thesecon@gmail.com
https://www.omdbapi.com?/apikey=7035c60c&s=frozen
The quick brown fox jumps over the lazy dog
abbcccdddd
d
hxyp
http://localhost:1234
λν΄λ¬Όκ³Ό_λ°±λμ°μ΄ λ§λ₯΄κ³ λ³λλ‘
`;
const h = ` the hello world !
`;
console.log(str.match(/d$/gm));
console.log(str.match(/^t/gim));
console.log(str.match(/h..p/g));
console.log(str.match(/fox|dog/g));
console.log(str.match(/https?/g));
console.log(str.match(/d{2}/g));
console.log(str.match(/d{2,}/g));
console.log(str.match(/\b\w{2,3}\b/g));
console.log(str.match(/[fox]/g));
console.log(str.match(/[0-9]{1,}/g));
console.log(str.match(/[κ°-ν£]{1,}/g));
console.log(str.match(/\w/g));
console.log(str.match(/\bf\w{1,}\b/g));
console.log(str.match(/\d{1,}/g));
console.log(h.replace(/\s/g, ""));
console.log(str.match(/.{1,}(?=@)/g));
console.log(str.match(/(?<=@).{1,}/g));