Linux 학습 11 - 정규 표현 식
1. 프로필
정규 표현 식 은 텍스트 문자열 이나 패턴 을 설명 하 는 방식 입 니 다. 프로그램 은 이 패턴 을 임의의 텍스트 문자열 과 일치 시 켜 강력 한 검색 능력 을 제공 할 수 있 습 니 다.
2. 지원 하 는 프로그램
grep, sed, awk, vim, less, nginx, varnish 등
3. 분류
인 정 된 메타 문자 만 ^, $, [], * 기타 문자 가 일반 문자 로 인식 되 었 습 니 다.
() (곶? + | 추가등 특수 문자
4. 기본 용법
정규 표현 식 은 문자 와 연산 으로 구 축 된 것 이 며, 메타 문 자 를 통 해 확장 되 며, 대부분의 문 자 는 자신 과 일치 하 며, 대부분의 메타 문 자 는 반드시 역 슬 래 쉬 \ 를 사용 하여 의 미 를 바 꿔 야 합 니 다.정규 표현법 을 사용 할 때 는 어족 에 유의 해 야 한다. 어족 에 따라 인 코딩 데이터 가 다 르 기 때문에 우 리 는 LANG = C 를 자주 사용한다.
일반 문자
알파벳, 숫자, 밑줄, 특별한 정의 가 없 는 기 호 는 모두 일반 문자 입 니 다. 표현 식 의 일반 문 자 는 문자열 과 일치 할 때 같은 문자 와 일치 합 니 다.
1: “c”, “zbcde” , ’c’
•
기호.
속뜻
.
임의의 단일 문자 일치
[ ]
지정 한 범위 내의 임의의 단일 문자 와 일치 합 니 다.
[^]
지정 한 범위 밖의 임의의 단일 문자 와 일치 합 니 다.
[:alnum:]
자모 와 숫자
[:alpha:]
모든 영문 대소 문자, 즉 a - z, A - Z 를 대표 합 니 다.
[:lower:]
소문 자
[:upper:]
대문자
[:blank:]
공백 문자 (공백 과 탭 문자)
[:space:]
수평 과 수직 공백 문자
[:cntrl:]
인쇄 할 수 없 는 제어 문자 (체크, 삭제, 비상벨)
[:digit:]
십진수
[:xdigit:]
16 진수
[:graph:]
인쇄 가능 한 비 공백 문자
[:print:]
인쇄 가능 문자
[:punct:]
문장 부호
문자 전의
쓰기 불편 한 문자 들 은 앞 에 '\' 를 붙 이 는 방법 을 사용한다.
표현 식
일치 가능
\r,
대표 님, 차 와 환 행.
\t
탭 문자
\
대표
또 일부 특수 한 용도 가 있 는 기호 가 있 는데, 앞 에 '\' 를 넣 으 면 이 기호 자 체 를 대표 한다.예 를 들 어 ^, $,. 등 전의 문자 의 일치 방법 은 일반 문자열 과 유사 하고 같은 문자 와 일치 합 니 다.
표현 식
일치 가능
^
^ 그 자체
$
$자체
.
자체
'다양한 문자' 와 일치 하 는 표현 식 사용자 정의
사용 중 괄호 [] 는 일련의 문 자 를 포함 하여 그 중의 임의의 문자 와 일치 할 수 있 습 니 다.[^] 로 일련의 문 자 를 포함 하면 그 중의 문자 이외 의 임의의 문자 와 일치 할 수 있 습 니 다.
표현 식
일치 가능
[abc]
a 또는 b 또는 c
[^abc]
a, b, c 이외 의 임의의 문자
[^A-F0-3]
A - F, 0 - 3 이외 의 임의의 문자
• 일치 횟수 (중복)
표현 식 을 사용 하고 일치 하 는 횟수 를 수식 하 는 특수 기 호 를 더 하면 표현 식 을 반복 하지 않 아 도 일치 하 는 것 을 반복 할 수 있 습 니 다.
기호.
속뜻
*
앞의 문자 와 일치 하 는 임의의 횟수 는 0 회 를 포함 합 니 다.
.*
임의의 길이 의 임의의 문자
?
앞 글자 0 또는 1 회 일치
+
앞의 문자 와 최소 1 번 일치 합 니 다.
{m,n}
앞의 문자 와 최소 m 회, 최대 n 회 일치 합 니 다.
{n}
앞 글자 n 회 일치
{,n}
앞의 문자 와 최대 n 번 일치 합 니 다.
{n,}
앞의 문자 와 최소 n 번 일치 합 니 다.
2:a*b a b , b (0 a b )
3: ip
[0-9] {1-3} “.”, 3 \{3\},
[root@V9centos7 ~]$ifconfig ens33|grep -w inet|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'
172.16.253.231
255.255.0.0
172.16.255.255
위치 닻: 위치 가 나타 난 위치
기호.
속뜻
^
줄 의 첫 닻 은 패턴 의 맨 왼쪽 에 사용 된다.
$
행 미 닻 은 패턴 의 맨 오른쪽 에 사용 된다.
^pattern$
패턴 일치 줄 사용
^$
공 행
1*$
공백 줄
\
단어의 첫 닻 은 단어 모드 의 왼쪽 에 사용 된다.
\ > 또는 \ b
어미 닻
\
단어 전체 일치
4: Packages .rpm , ,
ls /misc/cd/Packages/|grep -o'[^.]\+\.rpm$'|sort|uniq -c
PS:/misc , ,
5: f1 , tab
[root@V9centos7 /data]$cat -A f1
abc cba$
$
help $
^I^I$
USB^I$
$
[root@V9centos7 /data]$grep -v '^[[:space:]]*$' f1
abc cba
help
USB
그룹:
\ (\) 하나 이상 의 문 자 를 묶 어 하나의 전체 로 처리 합 니 다.
:IP , ,
'([0-9]{1,3}\.){3}[0-9]{1,3}'
인용
그룹 괄호 의 패턴 이 일치 하 는 내용 은 정규 표현 식 엔진 에 내부 변수 에 기 록 됩 니 다. 이 변 수 는 \ 1, \ 2, \ 3...
\ \ 1 은 왼쪽 에서 부터 첫 번 째 왼쪽 괄호 와 일치 하 는 오른쪽 괄호 사이 의 패턴 에 일치 하 는 문 자 를 표시 합 니 다.
:\1 \(r..\) , roo, \1 roo, r..
echo "aa roo xx ryy"|grep "\
\ # \ # 5. 확장 정규 표현 식 확장 정규 표현 식 은 기본 문법 에서 사용 할 때 처럼 일부 문자 의 수 요 를 없 앴 습 니 다. (),?, +, | (곶 을 포함 합 니 다.
단점 은 정규 표현 식 에서 문자 로 해석 하려 면 의 미 를 바 꿔 야 한 다 는 것 입 니 다. grep - E 또는 egrep 를 사용 하여 확장 정규 표현 식 을 지정 할 수 있 습 니 다.
\ # \ # 6. 또는 표시 방법
기호 사용 | 선택 할 모드 분리
: f1 xyzab xyzdf xyzef。
[root@V9centos7 /data]$grep -o "xyz\ab\|cd\|ef" f1
xyzab cd ef
[root@V9centos7 /data]$grep "xyz\(ab\|cd\|ef\)" f1
xyzab xyzcd xyzef
[root@V9centos7 /data]$cat f1
xyzab xyzcd xyzef
탐욕 과 게 으 름
정규 표현 식 이 중복 되 는 기 호 를 포함 할 때 가능 한 한 많은 일치 문 자 를 포함 합 니 다.
예: a. * b, aababaaab 를 검색 하면 전체 문자열 과 일치 합 니 다.
[:space:] ↩︎
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.