09/27 JAVASCRIPT 정규표현식

yookyungmin·2022년 9월 27일
0

정규표현식 (Regex)

1 > .

  • . 아무 글자나 한글자와 매칭되는 특수기호를 듯한다 // . 찾고 싶다면 .로 검색한다. 역슬래쉬=escape 탈출문자] * 단 여기서 \n 같은 escape 문자는 제외

    .. 아무거나 두글자씩 검색 하겠다

... 아무 글자 세글자를 검색하겠다

t. t를 포함한 아무글자 두글자씩
t.e t가 나오고 아무거나 한글자 나오고 e로 끝나는 이름 ex)the tte
t..e t가 나오고 아무거나 두글자 나오고 e로 끝나는 이름 ex) ture teshe

2 > ^

검색에서 검색 대상의 전체 문장에서 가장 앞에 위치하는 조건일때 매칭, css에서 ^에 영향을 줌

ex)/^Edit/gm
Roll RegExr was
[] 안에서는 not이라고 표현한다

3 > $

Temple.$ 검색대상의 가장 뒤쪽에 있는 단어 검색, . 단어 뒤에 . 포함 시켜줘야 함
^Text$/gm
문장 자체가 Text인걸 찾겠다

2번3번은 multiline 연계해서 기억

4> [] 안의 모든 글자중 한글자와 매칭

gray|grey 앞에 단어 or 뒤에 내용을 찾겠다
gr[ae]y// grey, gray를 찾겠다, graey는 안됨, 한글자만 gr[aesadas]y 이런것도 된다
gr[^ai]y // a나 i만 아니면 된다.
^gr[^ai]y // 문장 앞에 gr이 나오고 가운데에 a나 i가 아니고 y로 끝나는것
^B[ia]bble ^B[^ue]bble Bibble, Babble
^B[a-z]bble a-z까지 , ^B[ㄱ-ㅎ]bble, ^B[a-zA-Z]bble a-z , A-Z 까지
^B[가-힣]bble
^B[a=zZ-A0-9ㄱ-ㅎ가-힣]bble : B가 오고 [] 안에 글자중 한가지 후 bble 가 오는 단어와 매칭

5 > +

자신의 바로 앞 한글자에 대하여 1회 이상부터 무한히 반복하는 대상을 매칭
go+gle g로 시작해서 o가 오는데 1회 이상 반복하고 gle 가 나오는 것을 찾겠다 google
ogooglegooooglegooglegoooooglegogle

6 > *

자신의 바로 앞 한글자에 대하여 0회 이상부터 무한히 반복되는 대상을 매칭 gle 도 됨. go+gle
goglegglegglegoogleggle
A.+Z A로 시작하면서 Z로 끝나는데 가운데 아무거나
AASDAZ

5,6> 수량자 기호는 기본적으로 Greedy Match(최장매치)로 동작한다.

7 > ?

자신의 바로 앞 한글자에 대하여 존재하거나 존재하지 않는 상황을 모두 매칭
colou?r // color , colour
주의사항 ? 기호는 수량자 뒤에 붙어서 사용될 경우 rage match(최단 매치) 기능으로 사용됨

<div>로 시작해서 </div>끝나는 상황
<div>.+</div> //  <div>Test</div><div>Test</div>  +만 으로 greedy match(최장매치 적용)
<div>.+?</div>// <div>Test</div> ?도 같이 사용하여 rage match(최단매치 적용) globle 적용하면 끊어서 적용

8> {}

{} 기호 앞의 한글자에 대하여 {} 내의 숫자만큼 반복하는 상황을 매칭
ap{4}le p가 4개 들어있는 apppple 로 검색
ap{3}le p가 3글자 이상 들어있는 단어 검색
ap{2,3}le p가 2 글자이면서 3글자 검색

9 > ()

() 의 기능의 첫번째 : 정규표현식이 적용될 대상 문자를 묶어서 처리하는 방법
()의 기능 두번째 : 데이터 그룹화
google googoogle googoogoogle googoogoogoogle
(goo)+gle 모두검색
(goo)?gle google만 검색

quiz
0000000000001013249275
010-1324-4321
0109342758128371928479
01090062139
0212344321
12847951829541
010abcd3908
번호 형식으로 되어있는 내용을 찾아라

^01[016789]-?[0-9]{4}-?[0-9]{4}01[016789][09][09][09][09][09][09][09][09]^01[0|1|6|7|8|9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
^01[0|1|6|7|8|9]-?[0-9][0-9][0-9][0-9]-?[0-9][0-9][0-9][0-9]01[016789]?[09]4?[09]4^01[016789]-?[0-9]{4}-?[0-9]{4}
^01\d-?[0-9]{3,4}-?[0-9]{4}\n
^01\d-?\d{3,4}-?\d{4}\n
^01\d-?\d{3,4}-?\d{4}$

<div id="abc">Hello</div>
<span id="def">Test</span
  Hello 출력을 원할시
  $& 변수 자동으로 만들어지는 변수, 정규식으로 검색을 수행해서 대상이 찾아지는 순간 찾아진 	데이터가 저장되는 변수, 캡쳐변수 데이터 추출의 목적도 가지고 있다. 캡처변수
  ()그룹화 된거는 $1 $2 ~ 순서로 저장된다
>(.+)</d ()로 그룹화 시키면 $1\n 으로 그룹화된 hello 데이터만 추출할수 있다.
>(.+)>(/d)()로 두번 그룹화 시키고 $2\n 하면 /d가 출력 된다
  id값만 출력을 원할시
"(.+)(">)  ,, "(.+)(">)
  "(.+)"

0개의 댓글