본문 바로가기
Tip

정규식 관련

by "뭉치" 2021. 9. 2.
728x90
i 는 대 소문자 구분을 하지 않게 한다.
var pattern = '/a/{i}'; 

g 는 글로벌의 약자이며

var xg = /a/g;
"abcdea".match(xg); 는 a가 두개 출력된다. ["a","a"]

ig 를 같이 사용가능하다.

(\w+)\s(\w+)
()는 그룹을 표시한다.
\s는 공백을 표시한다.

정규 표현식을 시각화해서 보여주는 도구
http://www.regexper.com/

캡쳐? ㅡ,.ㅡ
var pattern = "(\w+)\s(\w+)";
var str= "coding everybody";

str.replace(pattern , $2, $1 );
-> everybody coding
www.zvon.org 에서 듀토리얼을 진행할 수 있다.

page3
^who 는 첫 시작
who$는 who가 끝 문자일 때

page4
escape : ( \ ) 백슬러쉬는 뒤에 따라오는 문자를 정규표현식에서 의미가 있는 문자가 아니라 단순한 문자로 바꿔주는 역할을 한다.

page 5
point : . 은 모든 문자열을 매칭한다.
case2의 all은 ...... 6개의 point 인데 6개씩 짤라나가다가 나머지 부분은 6개가 안되니까 선택을 안하는 것.

page 6
\..\. 은 점과 점 사이의 . 이 모든 문자열의 매칭이니까 중간 문자열과 점들이 선택된다.

page 7
[] 안에 정의된 문자열중 해당하는 것을 매칭한다. 이 []는 문자 하나의 대한 것을 정의한다.
[woy][yow] 

page8
- 의 사용법.
c-k 라고 하면 cdefghijk 까지 매칭.

page9
^의 다른 의미.
[]안에서 사용하면. not의 의미이다. 제외하고 라는 뜻이다.

page10
sub patten.
() 안에 구분할 수 있는 부분을 넣고 ()day 라는 식으로 공통되는 부분을 뒤에 선언할 수 있다.
..()ay 도 쉽드아

page11
source char : aabc abc be
수량자 : 어떠한 패턴이 얼만큼 등장하는가. * + ? 세가지.
* : *앞에 등장하는 패턴이 얼만큼 등장하는가에서 0~여러개. 있을 수도 있고 없을 수도 있고.
a*b는 a가 있을수도있고 없을 수도있고. aab , ab , b 도 된다는 것이드아.
+ : +는 1~여러개를 의미한드아. 하나도 없으면 안나온드아.
a+b : aab , ab 
? : ?는 없거나 1나. aab 는 선택되지 않는드아.
ab , ab , b

page12
 .* 은 모든 문자열.
-특정문자열*- 를 했을 때 전화번호라고 생각을 하면
전화번호가 있으면 010-3333-2222 가 나올텐데 없으면
-- 이런식으로 표현할 수 있을 것 같다. -A*-
[]* 의 사용법은 []안에 있는 문자열을 반복적으로 사용할 수 있다는 것 인것 같다.

page13
+는 1나 이상 여러개 가능~ \*+ 는 *선택.
-@+- 수량제어자인 +로 인해 -@@@@@- 등 매칭 됨.
[^ ]+ 모든 문자열 중. 공백 하나는 매칭 안됨.

page14
?의 활용이다.
다시한번 ?는 없어도 되고 1나만 있으면 되는 것.
case3을 보면 
[^@] 라는게 @아니면 매칭.
@? 은 없어도 되고 1나만.
@은 @니까.
-@@-@@-@@-@d@ 뭐이런식

page15
{} 정확한 수량을 정의한다.
.{5} 어떠한 글자든 5글자.
[els]{1,3} els 라는 문자가 1이상 3이하까지 매칭이 된다.
[a-z]{3,} 3이상~~ 이라는 뜻.

page16
쉽드아.

page17
수량자(*)뒤에?가 오면 *의미가 0을 가르키게 된다.
수량자(+)뒤에?가 오면 +의미가 1을 가르키게 된다.

결론은 수량자()뒤에 ?가 붙으면 수량자가 가지고 있는 원래 의미중 첫번째를 갖게 한다.

<div>.+</div> : greedy : 탐욕적인.. 수량자
<div>.+?</div> lazy : 게으른 선택자
<div>test</div><div>test2</div>

테스트 홈페이지
http://www.gskinner.com/RegExr

page18
\w : w는 word 라는 의미가 있다. : [A-z0-9__]

page19
\W : word가 아닌것.

page20
\d : 디지트의 약자. 0-9 까지의 숫자를 의미함. 숫자들을 가르키는 케릭터 클래스가 됨 : [0-9]
\D : 숫자가 아닌것.

page21 ~ 23
\b : 워드 바운더리. \b\w 는 단어가 시작되는 문자만 찾게 됨.
\w\b : 는 단어 끝.
\b\w\b 는 단어가 하나인것만 찾음.
\bcat : cat concat 에서 cat 만 찾고 cat\b는 cat 과 concat의 둘다의 cat을 찾음.
\b. 하면 단어의 첫번째를 지정함.
\B를 하면

page24
\A... 는 시작점의 3개의 문자
...\Z는 제일 뒤에 있는 3글자.
test\Z 라고 하면 각 줄에 test가 있더라도 마지막 test를 찾음.

page25
\w 는 문자열
+ 는 1~다
(?=X) 은 그 X 문자를 제외한다는 것. 그 전까지 찍음.
\w+(?=\w) 는 ?= 로 인해 한 단어 문자열(word)의 맨 마지막만 제외하고 선택한다.

page26
?!<pattern>는 <pattern>이 적용되는 한 단어를 제외 한다는 뜻.
728x90

'Tip' 카테고리의 다른 글

spring boot에 관하여  (0) 2021.09.01
클라우드 컴퓨팅 구현 기술  (0) 2021.08.31
Cassandra 란  (0) 2021.08.30
hazelcast 란  (0) 2021.08.28
spring 개념  (0) 2021.08.14

댓글