작은 메모장
정규표현식 - 정규표현식 개념 본문
정규표현식이란
문자열의 일정한 규칙(패턴)을 표현하는 형식 언어
간단한 규칙을 작성하여 규칙에 맞는 문자열 검색
단순히 득정 문자열의 포함/제외 뿐 아니라 반복 표현 지원
그래서 이걸 어케 씀?
아래와 같은 문장을 보자
더보기
정규 표현식이라는 문구는 일치하는 텍스트가 준수해야 하는 "패턴"을 표현하기 위해
특정한 표준의 텍스트 신택스를 의미하기 위해 사용된다.
여기서, 텍스트라는 단어를 검색하려고 한다.
그러면 /텍스트/g라는 정규표현식을 사용한다.
더보기
정규 표현식이라는 문구는 일치하는 텍스트가 준수해야 하는 "패턴"을 표현하기 위해
특정한 표준의 텍스트 신택스를 의미하기 위해 사용된다.
근데, 그냥 텍스트가 아니라 앞뒤로 공백이 있는 텍스트라는 단어를 검색하려고 한다.
그러면 \s/텍스트\s/g라는 정규표현식을 사용하여 찾아낼 수 있다.
더보기
정규 표현식이라는 문구는 일치하는 텍스트가 준수해야 하는 "패턴"을 표현하기 위해
특정한 표준의 텍스트 신택스를 의미하기 위해 사용된다.
정규표현식의 사용법
문자열 표현식
명칭 | 기호 | 의미 | 사용방법 | 결과 |
문자 집합 | [ ] | 괄호 내 모든 문자 포함 | [가나다] | A1B2C3D 가나다라 |
부정 집합 | [^ ] | 괄호 내 모든 문자 제외 | [^가나다] | A1B2C3D 가나다라 |
범위 | [ - ] | 괄호 내 문자 범위 포함 | [가-다] | A1B2C3D 가나다라 |
점 | . | 개행을 제외한 해당 순번의 아무 문자 포함 | 가. | A1B2C3D 가나다라 |
단어 | \w | A~z, 0~9, _문자 포함 | \w | A1B2C3D 가나다라 |
단어 제외 | \W | A~z, 0~9, _문자 제외 | \W | A1B2C3D 가나다라 |
숫자 | \d | 0~9 숫자 포함 | \d | A1B2C3D 가나다라 |
숫자 제외 | \D | 0~9 숫자 제외 | \D | A1B2C3D 가나다라 |
공백 | \s | 공백 포함 | \s | A1B2C3D 가나다라 |
공백 제외 | \S | 공백 제외 | \S | A1B2C3D 가나다라 |
이스케이프 문자 표현식
명칭 | 기호 | 의미 | 사용방법 | 결과 |
예약 문자 표기 | \? | . ? * + 등의 예약기호를 문자로 표기 | 5\+ | 5+25=32 |
탭 | \t | 탭 포함 | \tab | abcdef |
개행 | \n | 개행 포함 | \nab | abcdef |
8진법 표기 | \000 | 255 이하의 수를 8진법으로 표기 | \141\142 | abcdefg |
16진법 표기 | \x00 | 255 이하의 수를 16진법으로 표기 | \x61\x62 | abcdefg |
유니코드 표기 | \u0000 | 유니코드 문자로 표기 | \u0061 \u0062 |
abcdefg |
앵커 표현식
명칭 | 기호 | 의미 | 사용 방법 | 결과 |
문장 시작 | ^ | 문장의 시작 부분 | ^5 | 555 55 555 |
문장 끝 | $ | 문장의 끝 부분 | 5$ | 555 55 555 |
단어 경계 | \b | 단어 별 경계 부분 | 5\b | 555 55 555 |
단어 경계 제외 | \B | 단어 별 경계 부분 제외 | 5\B | 555 55 555 |
그룹 표현식
명칭 | 기호 | 의미 | 사용 방법 | 결과 |
그룹 | ( ) | 괄호 조건에 탐지된 결과를 메모리에 저장 | (.)a | aba beb cac ded |
참조 | \1 | 메모리의 N번째 그룹 결과를 참조 | (.)a\1 | aba beb cac ded |
참조 제외 그룹 | (?: ) | 메모리에 결과를 저장하지 않고 탐지 | (?:.)(b)e\1 | aba beb cac ded |
수량 표현식
기호 | 의미 | 사용 방법 | 결과 |
* | 0개 혹은 그 이상 | 소[가-힣]* | 소 소나무 장수하늘소 |
+ | 1개 혹은 그 이상 | 소[가-힣]+ | 소 소나무 장수하늘소 |
{1} | 정확히 N개 | 소[가-힣]{1} | 소 소나무 장수하늘소 |
{1, 2} | 최소 N개, 최대 M개 | 소[가-힣]{1,2} | 소 소나무 장수하늘소 |
{1. } | 최소 N개 이상 | 소[가-힣]{0, } | 소 소나무 장수하늘소 |
? | 0 혹은 1개 | 소[가-힣]? | 소 소나무 장수하늘소 |
| | OR | 소(고|기|나)(무|말|랭) | 소 소나무 장수하늘소 |
플래그
명칭 | 기호 | 의미 | 사용 방법 | 결과 |
플래그 없음 | / | 마지막 탐색 위치를 유지하지 않고 검색 | /abc/ | abcd abcd abcd |
전체 검색 | /g | 마지막 탐색 위치를 유지하며 검색 | /abc/g | abcd abcd abcd |
대소문자 구분 안 함 | /i | 대소문자 구분하지 않음 | /abc/gi | ABCD abcd abcd |
다중 라인 검 | /m | 라인을 개별 문장으로 취급 | /^abc/g | abcd abcd abcd abcd abcd abcd abcd abcd abcd |
/^abc/gm | abcd abcd abcd abcd abcd abcd abcd abcd abcd |
'KISA 사이버 보안 훈련 > YARA 정규표현식 활용' 카테고리의 다른 글
Yara Rule (0) | 2023.06.25 |
---|---|
Yara 개념 (0) | 2023.06.25 |
정규표현식 - 정규표현식 응용 실습 (0) | 2023.06.25 |
정규표현식 - 정규표현식 기본 실습 (0) | 2023.06.24 |
정규표현식 - Yara와 정규표현식의 관계 (0) | 2023.06.22 |