πŸ“—μ •κ·œν‘œν˜„μ‹ μ‚¬μš©λ²• 정리

Ju Young JunΒ·2022λ…„ 11μ›” 27일
0
post-thumbnail

πŸŸ’μ •κ·œν‘œν˜„μ‹ ν˜•μ‹

/νŒ¨ν„΄/ν”Œλž˜κ·Έ

  • μŠ¬λž˜μ‹œ(/) "사이"μ—λŠ” λ§€μΉ­μ‹œν‚¬ "νŒ¨ν„΄"을 써쀀닀.
  • μŠ¬λž˜μ‹œ(/) "λ‹€μŒ"μ—λŠ” μ˜΅μ…˜μ„ μ„€μ •ν•˜λŠ” "ν”Œλž˜κ·Έ"λ₯Ό 써쀀닀.(ν”Œλž˜κ·ΈλŠ” ν•˜λ‚˜λ§Œ 찾을지, λͺ¨λ‘ λ‹€ 찾을지 μ„€μ •ν•˜λŠ” μ˜΅μ…˜)

πŸŸ’μ •κ·œν‘œν˜„μ‹ 맀칭 νŒ¨ν„΄(문자, 숫자, 기호 λ“±)

  • μ•„λž˜ 맀칭 νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λ©΄, 훨씬 μ‰½κ²Œ 문자/숫자/기호λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.
νŒ¨ν„΄μ˜λ―Έ
a-zA-zμ˜μ–΄μ•ŒνŒŒλ²³(-으둜 λ²”μœ„ 지정)
0-9숫자(-으둜 λ²”μœ„ 지정)
γ„±-γ…Žκ°€-νž£ν•œκΈ€λ¬Έμž(-으둜 λ²”μœ„ 지정)
.λͺ¨λ“  λ¬Έμžμ—΄(숫자, ν•œκΈ€, μ˜μ–΄, 특수기호, 곡백 λͺ¨λ‘! 단, μ€„λ°”κΏˆX)
\d숫자
\Dμˆ«μžκ°€ μ•„λ‹Œ 것
\wμ˜μ–΄ μ•ŒνŒŒλ²³, 숫자, μ–Έλ”μŠ€μ½”μ–΄(_)
\W/w κ°€ μ•„λ‹Œ 것
\sspace 곡백
\Sspace 곡백이 μ•„λ‹Œ 것
\특수기호특수기호

πŸŸ’μ •κ·œν‘œν˜„μ‹ 검색 νŒ¨ν„΄

  • μ•„λž˜ νŒ¨ν„΄λ“€μ„ μ΄μš©ν•˜λ©΄, AND, OR, StartWith, EndWith λ“±μ˜ λ‹€μ–‘ν•œ 쑰합을 λ§Œλ“€ 수 μžˆλ‹€.
기호의미
|OR
[ ]κ΄„ν˜Έμ•ˆμ˜ λ¬Έμžλ“€ 쀑 ν•˜λ‚˜
[^문자]κ΄„ν˜Έμ•ˆμ˜ 문자λ₯Ό μ œμ™Έν•œ 것
^λ¬Έμžμ—΄νŠΉμ • λ¬Έμžμ—΄λ‘œ μ‹œμž‘(κ΄„ν˜Έ μ—†μŒ 주의!)
λ¬Έμžμ—΄$νŠΉμ • λ¬Έμžμ—΄λ‘œ 끝남
( )κ·Έλ£Ή 검색 및 λΆ„λ₯˜(matchλ©”μ„œλ“œμ—μ„œ κ·Έλ£Ήλ³„λ‘œ λ¬Άμ–΄μ€Œ)
(?: νŒ¨ν„΄)κ·Έλ£Ή 검색(λΆ„λ₯˜X)
\bλ‹¨μ–΄μ˜ 처음/끝
\Bλ‹¨μ–΄μ˜ 처음/끝이 μ•„λ‹˜

πŸŸ’μ •κ·œν‘œν˜„μ‹ 갯수(μˆ˜λŸ‰) νŒ¨ν„΄

  • νŠΉμ • νŒ¨ν„΄μ΄ λͺ‡λ²ˆ λ°˜λ³΅λ˜λŠ”μ§€λ„ 필터링 κ°€λŠ₯
기호의미
?μ΅œλŒ€ ν•œλ²ˆ(μ—†μŒ || ν•œκ°œ)
*μ—†κ±°λ‚˜ μžˆκ±°λ‚˜ (μ—†μŒ || 있음): μ—¬λŸ¬κ°œ 포함
+μ΅œμ†Œ ν•œκ°œ(ν•œκ°œ || μ—¬λŸ¬κ°œ)
{n}n개
{Min,}μ΅œμ†Œ Min개 이상
{Min, Max}μ΅œμ†Œ Min개 이상, μ΅œλŒ€ Max개 μ΄ν•˜

πŸŸ’μ •κ·œν‘œν˜„μ‹ ν”Œλž˜κ·Έ

  • ν”Œλž˜κ·ΈλŠ” λ™μ‹œμ— μ—¬λŸ¬κ°œ μ‚¬μš©ν•  수 μžˆλ‹€. ex) gi, gm ...
ν”Œλž˜κ·Έμ˜λ―Έ
gGlobal: λͺ¨λ“  문자 검색(μ•ˆ μ“°λ©΄ λ§€μΉ­λ˜λŠ” 첫 문자만 검색)
iIgnore Case: λŒ€μ†Œλ¬Έμž ꡬ뢄 μ•ˆν•¨
mMulti line: μ—¬λŸ¬ ν–‰μ˜ λ¬Έμžμ—΄μ— λŒ€ν•΄ 검색

πŸŸ’μ •κ·œν‘œν˜„μ‹ μ£Όμš” λ©”μ„œλ“œ

  • μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ μƒμ—μ„œλŠ” μ•„λž˜ λ©”μ„œλ“œλ₯Ό 톡해 νŒ¨ν„΄μ„ κ²€μ‚¬ν•˜κ³ , λ§€μΉ­λ˜λŠ” λ¬Έμžμ—΄μ„ μΆ”μΆœ, λ³€ν™˜
λ©”μ„œλ“œμ˜λ―Έ
("λ¬Έμžμ—΄").match(/μ •κ·œν‘œν˜„μ‹/ν”Œλž˜κ·Έ)"λ¬Έμžμ—΄"μ—μ„œ "μ •κ·œν‘œν˜„μ‹"에 λ§€μΉ­λ˜λŠ” ν•­λͺ©λ“€μ„ λ°°μ—΄λ‘œ λ°˜ν™˜
("λ¬Έμžμ—΄").replace(/μ •κ·œν‘œν˜„μ‹/, "λŒ€μ²΄λ¬Έμžμ—΄")"μ •κ·œν‘œν˜„μ‹"에 λ§€μΉ­λ˜λŠ” ν•­λͺ©μ„ "λŒ€μ²΄λ¬Έμžμ—΄"둜 λ³€ν™˜
("λ¬Έμžμ—΄").split(μ •κ·œν‘œν˜„μ‹)"λ¬Έμžμ—΄"을 "μ •κ·œν‘œν˜„μ‹"에 λ§€μΉ­λ˜λŠ” ν•­λͺ©μœΌλ‘œ μͺΌκ°œμ–΄ λ°°μ—΄λ‘œ λ°˜ν™˜
(μ •κ·œν‘œν˜„μ‹).test("λ¬Έμžμ—΄")"λ¬Έμžμ—΄"이 "μ •κ·œν‘œν˜„μ‹"κ³Ό 맀칭되면 true, μ•„λ‹ˆλ©΄ falseλ°˜ν™˜
(μ •κ·œν‘œν˜„μ‹).exec("λ¬Έμžμ—΄")matchλ©”μ„œλ“œμ™€ μœ μ‚¬(단, 무쑰건 첫번째 맀칭 결과만 λ°˜ν™˜)

πŸŸ’μ •κ·œν‘œν˜„μ‹ ν™œμš© μƒ˜ν”Œ μ½”λ“œ

πŸ”΅μ›Ήμ‚¬μ΄νŠΈ μ£Όμ†Œ μ •κ·œν‘œν˜„μ‹

  • http:// λ‚˜ https://둜 μ‹œμž‘ν•˜κ³ , μ•ŒνŒŒλ²³, μ–΄λ”μŠ€μ½”μ–΄(_), ν•˜μ΄ν”ˆ(-), dot(.)으둜 이루어져 μžˆλ‹€.
const text = `λŒ€λ‚˜λ¬΄ λΉ¨λŒ€ κ΅¬μž… 문의 : http://dogumaster.com http://google.com 010-1111-2222 02-333-7777 curryyou@aaa.com`;

text.match(/https?:\/\/[\w\-\.]+/g);
// ["http://dogumaster.com", "http://google.com"]

/https?:\/\/[\w-.]+/g

1) http: http둜 μ‹œμž‘
2) s?: λ‹€μŒμ— sλŠ” μ—†κ±°λ‚˜ 있음
3) ":": λ‹€μŒμ— :κ°€ μ˜¨λ‹€
4) \/\/: λ‹€μŒμ— νŠΉμˆ˜κΈ°ν—ˆ //κ°€ 였고
5) [\w\-\.]+: \w(영문자, μ–Έλ”μŠ€μ½”μ–΄), ν•˜μ΄ν”ˆ, 쩜 으둜 이루어진 λ¬Έμžμ—΄μ΄ ν•œκ°œ 이상(+) μžˆλ‹€
6) g: λ§€μΉ­λ˜λŠ”κ±Έ λͺ¨λ‘ λ‹€ μ°ΎλŠ”λ‹€

πŸ”΅μ „ν™”λ²ˆν˜Έ μ •κ·œν‘œν˜„μ‹

  • μœ μ„ λ²ˆν˜ΈλΌλ©΄ 02-111-2222 ν˜•μ‹μ΄κ³ , ν•Έλ“œν°λ²ˆν˜ΈλΌλ©΄ 010-1111-2222 ν˜•μ‹μž…λ‹ˆλ‹€. 숫자의 κ°―μˆ˜κ°€ λ‹€λ₯΄λ‹€.
const text = `λŒ€λ‚˜λ¬΄ λΉ¨λŒ€ κ΅¬μž… 문의 : http://dogumaster.com http://google.com 010-1111-2222 02-333-7777 curryyou@aaa.com`;

text.match(/\d{2,3}-\d{3,4}-\d{4}/g);
// [ '010-1111-2222', '02-333-7777' ]

/\d{2,3}-\d{3,4}-\d{4}/g

1) \d{2,3} : 숫자 2~3개둜 μ‹œμž‘
2) -: λ‹€μŒμ— ν•˜μ΄ν”ˆ(-)이 였고
3) \d{3, 4}: λ‹€μŒμ— μˆ«μžκ°€ 3~4개 였고
4) \/\/: λ‹€μŒμ— 특수기호 //κ°€ 였고
5) \d{4} :λ‹€μŒμ— μˆ«μžκ°€ 4개 μ˜¨λ‹€
6) g: λ§€μΉ­λ˜λŠ”κ±Έ λͺ¨λ‘ λ‹€ μ°ΎλŠ”λ‹€

πŸ”΅μ΄λ©”μΌμ£Όμ†Œ μ •κ·œν‘œν˜„μ‹

  • xxx@xxxx.com λ“±μ˜ ν˜•μ‹
const text = `λŒ€λ‚˜λ¬΄ λΉ¨λŒ€ κ΅¬μž… 문의 : http://dogumaster.com http://google.com 010-1111-2222 02-333-7777 curryyou@aaa.com`;

text.match(/[\w\-\.]+\@[\w\-\.]+/g); // [ 'curryyou@aaa.com' ]

/[\w-.]+\@[\w-.]+/g

1) [\w\-\.]+: \w(영문자, μ–Έλ”μŠ€μ½”μ–΄), ν•˜μ΄ν”ˆ, 쩜 으둜 이루어진 λ¬Έμžμ—΄μ΄ ν•œκ°œ 이상(+) μžˆλ‹€
2) \@: λ‹€μŒμ— 특수문자 @κ°€ μ˜¨λ‹€

πŸ”΅νŠΉμˆ˜κΈ°ν˜Έ μ •κ·œν‘œν˜„μ‹

🟠λͺ¨λ“  특수기호λ₯Ό λ‚˜μ—΄

  • λΉΌλ¨Ήμ„μˆ˜λ„ μžˆλŠ” 단점이 μžˆμ§€λ§Œ, μ›ν•˜λŠ” 특수기호만 μ„ νƒν•΄μ„œ 검사할 수 μžˆλŠ” μž₯점
const text = `λŒ€λ‚˜λ¬΄ λΉ¨λŒ€ κ΅¬μž… 문의 : http://dogumaster.com http://google.com 010-1111-2222 02-333-7777 curryyou@aaa.com`;
text.match(/[\[\]\{\}\/\(\)\.\?\<\>!@#$%^&*]/g); // ['/', '/', '.', '/', '/', '.', '@', '.']

/[[]{}\/().\?\<>!@#$%^&*]/g

πŸŸ λ¬Έμžμ™€ μˆ«μžκ°€ μ•„λ‹Œκ²ƒμ„ 맀칭

  • [^문자] νŒ¨ν„΄μœΌλ‘œ Not κΈ°λŠ₯을 적용
const text = `λŒ€λ‚˜λ¬΄ λΉ¨λŒ€ κ΅¬μž… 문의 : http://dogumaster.com http://google.com 010-1111-2222 02-333-7777 curryyou@aaa.com`;
text.match(/[^a-zA-Z0-9κ°€-νž£γ„±-γ…Ž]/g); // [' ', ' ', ' ', ' ', ':', ' ', ':', '/', '/', '.', ' ', ':', '/', '/', '.', ' ', '-', '-', ' ', '-', '-', ' ', '@', '.']

/[^a-zA-Z0-9κ°€-νž£γ„±-γ…Ž]/g

μ°Έκ³ : https://curryyou.tistory.com/234

profile
μ•ˆλ…•ν•˜μ„Έμš” :)

0개의 λŒ“κΈ€