security/web

정규 표현식

chanchand 2023. 9. 27. 21:26
반응형

정규 표현식 패턴

'패턴' 혹은 /패턴/ 의 형태로 작성

/로 패턴을 감싸는 경우, / 뒤에 플래그를 작성할 수 있음

 

패턴 설명 예시
문자 혹은 문자열 해당 문자 혹은 문자열과 매치 abc -> Hello abc
/ab/ -> Hello abc
. 모든 문자와 매치 a.c -> Hello abc
| 앞 또는 뒤 패턴과 매치 hi|ab -> Hello abc
[]  [] 안의 문자와 매치 [ae] -> Hello abc
[^] ^ 뒤의 패턴을 제외한 나머지와 매치 [^a] -> abc
^ 어떤 문자열의 시작이 특정 패턴인 경우 매치 ^a -> Hello abc
^a -> abc Hello
$ 어떤 문자열의 끝이 특정 패턴인 경우 매치 c$ -> Hello abc
c$ -> abc Hello
\ \ 뒤의 특수 문자와 매치 
특수문자를 문자 그대로 쓰기 위한 이스케이핑
c\$ -> Hello abc$
[a-z]
[A-Z]
[0-9]
두 문자 사이 범위의 문자와 매치 [b-d] -> hack
\w 알파벳 또는 숫자 또는 _와 매치
[A-Za-z0-9_]
\w -> a!
\d 숫자와 매치 
[0-9]
\d -> a1
\s 공백문자와 매치
[\b\f\n\r\t\v]
 

 

패턴 설명
* 앞에 나온 문자가 0개 이상이면 매치
+ 앞에 나온 문자가 1개 이상이면 매치
앞에 나온 문자가 0개 혹은 1개이면 매치
수량자? 수량자 뒤에 ?를 붙이면 게으른 수량자로,
최소한의 문자만 매치
*기본적으로 정규표현식의 수량자는 탐욕적 수량자에 속함
{n} 앞에 나온 문자가 정확히 n개이면 매치
{n,} 앞에 나온 문자가 n개 이상이면 매치
{n1, n2} 앞에 나온 문자가 n1개 이상, n2개 이하이면 매치

 

패턴 설명 예시
() ()로 감싼 부분을 그룹화하여 하나의 문자로 여김 (abc)+de -> abcabcabcde

 

 

정규 표현식 플래그

검색의 옵션을 지정하는 역할

/패턴/플래그 형식으로 작성

 

플래그 설명 예시
g global search
매치하는 모든 문자/문자열 검색
/[aeiou]/ -> Hello abc
/[aeiou]/g -> Hello abc
i ignore case
대소문자 구분하지 않고 검색
/h/g -> Hello hehe
/h/gi -> Hello hehe
m multiline
여러 줄에서 검색
 
s single line(dotall)
메타문자 .가 개행문자도 포함
/Hello.+abc/g -> 
Hello daa

Hello abc
/Hello.+abc/s ->
Hello daa

Hello abc

 

반응형

'security > web' 카테고리의 다른 글

htmlentities  (0) 2023.10.28
MySQL DB 명령어  (0) 2023.10.17
file url schema  (0) 2023.08.20
127.0.0.1 / localhost 우회  (0) 2023.08.20
CouchDBMS  (0) 2023.08.19