JavaScript (8)


JavaScript(8):JSでの正規表現
1.正規表現の作成기본 setting
npm init -y
npm parcel-bundler -D
index.html
head src main.js
body h1 hello
script dev run 추가
parcel bundler 버전 문제가 생긴다면 -> npm i [email protected] -D
README.md作成정규표현식文字列の検索と置換に使用されるフォーマット言語(モード)
簡単な文字検索からEメールとパスワードチェックまで、複雑な文字マッチングを迅速に実行
正規表現テストサイト
https://regxr.com/
생성 방식 두 가지1)作成者
2)ステレオ
1)作成者
new RegExp('표현', '옵션')
new RegExp('[a-z]', 'gi')
改行(接尾辞)、正規表現に関連するX
const str = `hello 
world`
どのようなモードで正規表現を検索できますか?
const str = `
010-324-234
[email protected]
https://omdbapi.com/?apikey
the hello world
abccccdddd
`
正規表現
const regexp = new RegExp('the', 'g')
str.mathc(regexp)
결과: 배열데이터로 출력 / the라는 단어 찾아서 배열로 만들어줌
タグ(オプション)
두번째 옵션 'g' 플래그 = 조건 해당하는 모든 데이터 출력
두번째 옵션 'gi' 플래그 = 대문자 소문자 가리지 않고 모두 출력
2)文字(快適)
/표현/옵션
/[a-z]/gi
どのようなモードで正規表現を検索できますか?
const regexp = /the/gi
str.match(regexp)
3.方法
正規表現の使用方法
정규식.test(문자열) : 일치여부 boolean 반환
문자열.match(정규식) : 일치하는 문자열의 배열(array) 반환
문자열.replace(정규식, 대체문자) : 일치하는 문자열을 대체하고 대체된 문자열(String) 반환
const regexp = /fox/gi
regexp.test(str)
str.replace(regexp, 'AAA')
4.タグ(オプション)
g = 모든 문자 일치 (global)
i = 영어 대소문자를 구분 않고 일치 (ignore case)
m = 여러 줄 일치 (multi line)
const regexp = /the/gi
str.match(/\.$/gim)
\  = 점(.)은 원래하나의 명령으로 해석되는데 만약 문자로 원하면 이스케이프 문자\ 추가
$  = $ 앞에있는 단어로 해당하는 줄이 끝나는 부분 찾아서 끝나는 부분 일치시킴
m  = m이 없다면 문자열 가장 마지막에 점이 있어야하는데 m있으면 중간 점에서 일치 가능
g VS m 차이g=領域全体を検索
m=文字データは先頭と末尾が1つしかありません.改行されている場合は、各行を解釈します(各行を先頭と末尾として扱うことを示します).
5.図案(表示)
/ここではモード/
^ab : 줄 시작에 있는 ab와 일치
ab$ : 줄 끝에 있는 ab와 일치
str.match(/d$/gm)  // 마지막 줄 d 그 위치에 일치 "d" 두 개 출력
str.match(/^t/gm)  // 시작점에 찾아지면 일치 T출력
.   : 임의의 한 문자와 일치
a|b : a 또는 b와 일치
ab? : b가 없거나 b와 일치
*마크다운 a|b = a|b
str.match(/h..p/g)
str.match(/h..p/g)
str.match(/fox|dog/g)
str.match(/https?/g)   // ?앞 하나가 있을수도 없을수도 -> http, https 다 가능
{3} : 3개 연속 일치
{3,} : 3개 이상 연속 일치
{3,5} : 3개 이상 5개 이하 연속 일치
str.match(/d{2}/g)
str.match(/d{2,}/g)
str.match(/d{2,3}/g)
str.match(/\w{2,3}/g)      // 숫자 알파벳 포함 2~3개 문자열 출력
str.match(/\b\w{2,3}\b/g)  // 숫자 알파벳 2~3 단어로 찾을 수 있음(경계 설정)
[abc}] : a 또는 b 또는 c
[a-z]  : a부터 z사이의 문자 구간에 일치 (영어 소문자)
[A-Z]  : A부터 Z사이의 문자 구간에 일치 (영어 대무자)
[0-9]  : 0부터 9사이의 문자 구간에 일치 (숫자)
[가-힣] : 가부터 힣 사이의 문자 구간에 일치 (한글)
str.match(/[fox]/g)     // fox와 상관없이, f,o,x단위로 출력
str.match(/[0-9]{1,}/g) // 숫자 하나이상이 연속
str.match(/[가-힣]{1,}/g)
\w : 63개 문자(Word, 대소영문52개 + 숫자 10개 + _)에 일치
\b : 63개 문자에 일치하지 않는 문자 경계 (boundary)
\d : 숫자(digit)에 일치
\s : 공백(space, tab 등)에 일치
str.match(/\bf\w{1,}\b/g)   // f로 시작하는 단어
str.replace(/\s/g, '')      // 공백 삭제
(?=)  : 앞쪽 일치 (lookahead)
(?<=) : 뒤쪽 일치 (lookbehind)
str.match(/.{1,}(?=@)/g) 골뱅이 앞 전부 출력
str.match(/.(?=@).{1,}/g) 골뱅이 뒤 전부 출력