REGEX

BERT·2023년 3월 26일
0

Linux

목록 보기
18/24

REGEX
Regular Expression
RE
정규표현식

POSIX REGEX

UNIX 계열 표준 정규표현식

  • BRE (Basic RE)
    grep이 작동되는 기본값
  • ERE (Extended RE)
    egrep의 기본값

PCRE (Perl Compatible Regular Expression)

Perl 정규표현식 호환으로 확장된 기능을 가지고 있음
C언어 기반 시작
POSIX REGEX 대비 성능 좋음
현재는 PCRE2 버전 사용

EBNF 문법 알아둘 것

grep

global regular expression print
UNIX에서 가장 기본적인 REGEX 평가 유틸리티

-G BRE를 사용하여 작동(default)
-E ERE를 사용하여 작동
-P PCRE를 사용하여 작동

--color 매칭된 부분 강조색으로 표현
-o 매칭된 부분만 출력
-v --invert-match 매칭되지 않은 것만 출력

sed

stream editor로서 REGEX 기능 일부 탑재


POSIX REGEX: meta char

Any single character

. 임의의 문자 한 개 의미

Quantifier

? ? 앞에 문자가 0개 또는 1개 존재
* * 앞에 문자가 0개 이상 존재
+ + 앞에 문자가 1개 이상 존재
{m,n} 앞에 문자가 m개 이상 n개 이하 존재

*만 BRE임

Anchor

^ ^ 뒤에 문자열로 시작하는 행
$ $ 앞 문자열로 끝나는 경우

Character sets

[] 속에 포함된 문자 중 하나
[0-9] 0~9
[a-zA-Z0-9] 대소문자 알파벳, 숫자
[^0-9] 0~9 제외한 나머지
[0-9^] 0~9, ^

file안에 p로 시작, a~d까지 문자 하나 이상 존재, ous로 끝나는 문자열 포함하는 단어 탐색
\+인 이유 : +는 ERE이기 때문
grep "p[abcd]\+ous" /path/file

ous로 끝나는 단어 탐색 조건 추가

-A N 매칭된 행 다음 행 N개 출력(after)
-B N 매칭된 행 이전 행 N개 출력(before)
-C N 매칭된 행 다음, 이전 행 N개 출력(context)

0개의 댓글