정규표현식
해당 글은 PHP 기준으로 정리한 글 입니다.
정규표현식이란?
특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
정규표현식 함수
Function | Description |
---|---|
preg_match() | 패턴이 문자열에서 발견되면 1을 반환, 그렇지 않으면 0을 반환 |
preg_match_all() | 문자열에서 발견된 패턴의 개수를 반환 |
preg_replace() | 패턴과 일치하는 문자열을 다른 문자열로 대체된 문자열을 반환 |
Modifiers
Modifier | Description |
---|---|
i | 대소문자 구분하지 않고 패턴 검사 수행 |
m | 여러 줄 검색을 수행(문자열의 시작 또는 끝을 검색하는 패턴은 각 줄의 시작 또는 끝과 일치) |
u | UTF-8 인코딩 |
i
$result = preg_match("/t/", "test"); if ($result) { echo "Regex!!"; } else { echo "No Regex!!"; }
Regex!!
$result = preg_match("/t/", "TEST"); if ($result) { echo "Regex!!"; } else { echo "No Regex!!"; }
No Regex!!
이처럼 소문자일 땐 정규표현식에 잘 걸리는 것을 확인할 수 있다.
하지만 검사하고자하는 문자열이 대문자일 때는 걸리지 않는 모습이다.
$result = preg_match("/t/i", "TEST"); if ($result) { echo "Regex!!"; } else { echo "No Regex!!"; }
Regex!!
이처럼 Modifiers의 i를 사용 시 대소문자 구분하지 않고 검사를 할 수 있다.
m
Modifies를 설정하지 않았을 때$str = "adsad\n1234"; $result = preg_match("/^[0-9]+/", $str); if ($result){ echo "<h1>숫자를 찾았습니다!!</h1>"; } else { echo "<h1>숫자를 찾을 수 없습니다.</h1>"; }
숫자를 찾을 수 없습니다.
Modifies를 설정했을 때
$str = "adsad\n1234"; $result = preg_match("/^[0-9]+/m", $str); if ($result){ echo "<h1>숫자를 찾았습니다!!</h1>"; } else { echo "<h1>숫자를 찾을 수 없습니다.</h1>"; }
숫자를 찾았습니다!!
이처럼 Modifies를 설정하지 않았을 때 여러 줄의 문자열에서 숫자를 못 찾았지만, 설정 후에는 여러 줄의 문자열에서 숫자를 찾을 수 있었다.
Patterns
Expresstion | Description |
---|---|
[abc] | 대괄호 사이의 문자 찾기 |
[^abc] | 대괄호 사이의 문자 없는 것을 찾기 |
[0-9] | 0부터 9까지의 문자 찾기 |
Metacharacters
Metacharacter | Description |
---|---|
. | 줄바꿈 문자인 \n 를 제외한 모든 문자와 매치 |
^ | 문자열의 시작 부분과 일치하는 항목을 찾기 |
$ | 문자열 끝에서 일치하는 항목을 찾기 |
\d | 숫자 찾기 |
\s | 공백 문자 찾기 |
Quantifiers
Quantifier | Description |
---|---|
n+ | 하나 이상의 n을 포함하는 모든 문자열과 일치 |
n* | 0개 이상의 n을 포함하는 모든 문자열과 일치 |
n? | 0 또는 1번의 n이 포함된 모든 문자열과 일치 |
n{x} | n을 x번 이상 반복한 문자열과 일치 |
n{x,y} | n을 x번 이상 y번 이하 반복한 문자열과 일치 |
n{x,} | n을 x번 이상 반복한 문자열과 일치 |
Grouping
( )
으로 특정 문자열을 그룹핑할 수 있다./ba(na){2}/i
-> banana
'기술보안 > 기타' 카테고리의 다른 글
[HTB-ACADEMY] 윈도우 기초 - 01 (0) | 2021.09.12 |
---|---|
snort byte_test (0) | 2021.07.29 |
GNU Bash 취약점 (0) | 2021.05.31 |
OWASP ZAP Active Scan - Remote OS Command Injection 공격 분석 (0) | 2021.03.30 |
OWASP ZAP 사용 및 Snort Rule 작성 - (1) DVWA, Snort 3.1 설치 및 ZAP 사용 (0) | 2021.02.27 |