string.match
match() ๋ฉ์๋๋ ๋ฌธ์์ด์์ ์ ๊ท์๊ณผ ๋งค์น๋๋ ๋ถ๋ถ์ ๊ฒ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋๋ค.
const paragraph = 'Cats are the best';
const regex = /[A-Z]/g;
const found = paragraph.match(regex);
found; // ["C"]Syntax
str.match(regexp)Parameters
regexp
์ ๊ท์ ๊ฐ์ฒด์ด๋ค.
regexp๊ฐ ์ ๊ท์ ๊ฐ์ฒด๊ฐ ์๋ ๊ฒฝ์ฐ, new RegExp(regexp)๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ผ๋ก RegExp๋ก ๋ณํ
์ธ์๋ฅผ ๋๊ธฐ์ง ์๊ณ match() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋ฌธ์์ด์ ๊ฐ์ง Array [''] ์ด ๋ฐํ๋๋ค.
return value
global(g) flag์ ๋ฐ๋ฅธ ๋ค๋ฅธ ๊ฒฐ๊ณผ์ Array, ๋งค์น๋๋ ๊ฒฐ๊ณผ๊ฐ ์๋ค๋ฉด null
gflag๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, ์ ์ฒด ์ ๊ท ํํ์๊ณผ ์ผ์นํ๋ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง๋ง, ์บก์ณ๊ทธ๋ฃน์ ๋ฐํํ์ง ์๋๋ค.gflag๊ฐ ์๋ค๋ฉด ์ฒ์ ์ผ์นํ๊ฒ๊ณผ ๊ทธ์ ๋ํ ์บก์ณ ๊ทธ๋ฃน์ ๋ฐํํ๋ค.RegExp.exec()์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค. ๋ฐํ๋ ์์๋ ๋ค์ ๐ ์๋์ ๊ฐ์ ์ถ๊ฐ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋ค.
global(g) flag
์ ์ฒด ํ๋ณ, ์ฒ์ ์ผ์น์์ ์ค๋จํ์ง ์๊ณ , ๋ฌธ์์ด ์ ์ฒด๋ฅผ ํ๋ณํ๋ค.
์บก์ณ๋ง ๊ทธ๋ฃน(capturing group)
๊ดํธ๋ฅผ ๋๋ฌ์ผ ์์ญ์ด๋ค. ๊ฒฐ๊ณผ๊ฐ์ ์ฒซ๋ฒ์งธ์ ๋งค์นญ ๋ฌธ์์ด์ด ๋ค์ด๊ฐ๊ณ ๊ทธ ํ๋ถํด ์บก์ณ๋ง ๊ทธ๋ฃน ์์ ์๋ ๋ฌธ์์ด์ด ์ฐจ๋ก๋๋ก ๋ค์ด๊ฐ๋ค. ์บก์ณ๋ง ๊ทธ๋ฃน์ ์ฌ์ฉํ๋ฉด ํจํด ์์ ์ํ๋ ๋ถ๋ถ์ ํธ๋ฆฌํ๊ฒ ๋ถ๋ฆฌํ ์ ์๋ค.
(?x)
x์ ๋งค์นํ๊ณ ์ผ๋ก ๋ช ๋ช ๋ ์ด๋ฆ์ผ๋ก ๋งค์น๋ ๋ฐํ๊ฐ์ด ๊ทธ๋ฃน ํ๋กํผํฐ๋ก ์ ์ฅ๋๋ค.
('<'๊ณผ '>')์ ๊ทธ๋ฃน๋ช ์ ํ์๋ค.
์๋ฅผ ๋ค์ด ์ ํ๋ฒํธ์์ ๋ฏธ๊ตญ์ ์ง์ญ ์ฝ๋๋ฅผ ๊บผ๋ผ ๋ /((?\d\d\d))/์ ์ฌ์ฉํ ์ ์๊ณ ๊ฒฐ๊ณผ๋ฒํธ๋ matches.groups.area ์ ํ์๋๋ค.
g flag๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
๋ ผ-์บก์ณ๋ง ๊ทธ๋ฃน(non-capturing group)
?: ๊ธฐํธ๋ฅผ ์ถ๊ฐํ๋ฉด non-capturing ๊ทธ๋ฃน์ด ๋๋ค.
non-capturing group์ ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ์ถ๊ฐ๋์ง ์๋๋ค.
(?:x)
x์ ๋งค์น๋์ง๋ง, ๋งค์น๋ ๋ด์ฉ์ ๊ธฐ์ตํ์ง ๋ชปํ๋ค.
์ถ๊ฐ property
groups
key๊ฐ ์ด๋ฆ์ด๊ณ value๊ฐ ์บก์ณ๋ง ๊ทธ๋ฃน์ธ ๋ช
๋ช
๋ ์บก์ณ๋ง ๊ทธ๋ฃน์ object, ์บก์ณ๋ง ๊ทธ๋ฃน์ด ์ ์๋์ด ์์ง ์์ ๊ฒฝ์ฐ undefined
Description
์ ๊ท์์ g flag๊ฐ ์๋ค๋ฉด, RegExp.exec()์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
Other methods
์ ๊ท์์ด ๋ฌธ์์ด๊ณผ ์ผ์นํ๋์ง ์์์ผ ํ ๋๋
RegExp์ฌ์ฉํ๋ค.RegExp.test()์ฒซ๋ฒ์งธ ์ผ์น ํญ๋ชฉ๋ง ์ฐพ์ผ๋ ค๋ฉด
RegExp.exec()์บก์ฒ ๊ทธ๋ฃน์ ํ๋ณดํ๊ณ ๊ทธ๋ก๋ฒ ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ ค๋ฉด
RegExp.exec()๋๋String.prototype.matchAll()๋์ ์ฌ์ฉํ๋ค.
Examples
match() ์ฌ์ฉ
match()๋ฅผ ์ฌ์ฉํ์ฌ 'Chapter' ๋ผ๋ ๋จ์ด์ ์ ์ด์ด์ง๋ 1 ์ด์์ ์ซ์, ์์ซ์ ์ผ๋ก ์ซ์ํํ๊ฐ ๋ฐ๋ณต๋๋ ๋ฌธ์์ด์ ์ฐพ์
i flag๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
match()์ ํจ๊ป g (๊ธ๋ก๋ฒ) ํ๋๊ทธ์ i(๋์๋ฌธ์ ๋ฌด์) ํ๋๊ทธ ์ฌ์ฉํ๊ธฐ
g (๊ธ๋ก๋ฒ) ํ๋๊ทธ์ i(๋์๋ฌธ์ ๋ฌด์) ํ๋๊ทธ ์ฌ์ฉํ๊ธฐ๋งค๊ฐ๋ณ์ ์์ด match() ์ฌ์ฉํ๊ธฐ
๋น ์ ๊ทํํ์ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ๊ธฐ
๋งค๊ฐ๋ณ์๊ฐ ๋ฌธ์์ด์ด๋ ์ซ์์ด๋ฉด, ํด๋น ๋งค๊ฐ๋ณ์๋ ๋ด๋ถ์ ์ผ๋ก new RegExp(obj) ๋ฅผ ์ฌ์ฉํ์ฌ RegExp ๋ก ๋ณํ๋๋ค. ๋ง์ฝ ๋งค๊ฐ๋ณ์๊ฐ ํ๋ฌ์ค ๊ธฐํธ์ ์ด์ด์ง๋ ์ซ์ํ์ด๋ผ๋ฉด, RegExp() ๋ฉ์๋๋ ํ๋ฌ์ค ๊ธฐํธ๋ฅผ ๋ฌด์ํ๋ค.
์ฐธ๊ณ
์๋ฐ์คํฌ๋ฆฝํธ ์ ๊ทํํ์์ capturing group
Last updated
Was this helpful?