2019 - 04 - 17 정규 표현 식

6494 단어
처음에는
기본 정규 표현 식
^ $ . [] *
기본 정규 Basic RE BRE ^. *. * [];[^]
뒤에 필요 해서 늘 었 어 요.
정규 표현 식 확장
() {} ? + |
확장 정규 | () {}?
어댑터 와 정규 표현 식 의 차이
(1.) 정규 표현 식
파일 에서 파일 내용 을 걸 러 내 는 데 편리 합 니 다.
삼 총사 grep sed awk python 자바
(2.) 어댑터
파일 이름 찾기
Linux 대부분의 명령 은. txt 등 으로 끝 나 는 파일 을 지원 합 니 다.
주의 사항
중국어 기호 와 영문 기호 가 다 르 니 주의 하 세 요.
grep / egerp 설정 이름 추가 (CentOS 7 설정 하지 않 음)
기초 정규 의 표현 의미
파일 에서 내용 을 찾 거나 걸 러 내 는 데 편리 합 니 다.
환경 설정
[root@lidao ~]# cat /tmp/oldboy

ldboy.txt 

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com 

our size is http://blog.oldboyedu.com 

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY! 

grep 사용법
[root@lidao ~]# grep "3306" /etc/services 

mysql           3306/tcp                        # MySQL

mysql           3306/udp                        # MySQL

^.. 로 시작 하 는 문자
[root@lidao ~]# grep "^ssh" /etc/services

ssh             22/tcp                          # The Secure

Shell (SSH) Protocol

ssh             22/udp   # The Secure Shell (SSH) Protocol

ssh             22/sctp                 # SSH

sshell          614/tcp                 # SSLshell

sshell          614/udp                 #       SSLshell

ssh-mgmt        17235/tcp               # SSH Tectia Manager

ssh-mgmt        17235/udp               # SSH Tectia Manager

m 로 시 작 했 어 요.
[root@lidao ~]# grep "^m" /tmp/oldboy my blog is

http://oldboy.blog.51cto.com my qq is 49000448 my god ,i am
not oldbey,but OLDBOY!

$로 끝 나 는..
빈 칸 표시 기호
[root@lidao ~]# grep "m$" /tmp/oldboy 

[root@lidao ~]# grep "m $" /tmp/oldboy my blog is http://oldboy.blog.51cto.com our size is http://blog.oldboyedu.com

숨겨 진 기호 $
[root@lidao ~]# cat -A /tmp/oldboy 
$

ldboy.txt$

I am oldboy teacher!$

I teach linux.$

$

I like badminton ball ,billiard ball and chinese chess!$

my blog is http://oldboy.blog.51cto.com $

our size is http://blog.oldboyedu.com $

my qq is 49000448$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY! $
$

공 행 [root@lidao ~]# grep "^$" /tmp/oldboy
빈 줄 번호 표시 grep - n
[root@lidao ~]# grep -n "^$" /tmp/oldboy

1: 

5: 

10:

13: 
[root@lidao ~]# grep -vn "^$" /tmp/oldboy

2:ldboy.txt

3:I am oldboy teacher!

4:I teach linux.

6:I like badminton ball ,billiard ball and chinese chess!

7:my blog is http://oldboy.blog.51cto.com 

8:our size is http://blog.oldboyedu.com 

9:my qq is 49000448

11:not 4900000448.

12:my god ,i am not oldbey,but OLDBOY! 

임의의 문자 (단일), 빈 줄 과 일치 하지 않 습 니 다.
grep - o grep 실행 과정 표시
[root@lidao ~]# grep -o '.$' /tmp/oldboy

I teach linux. not 4900000448.

\ 전의 문 자 는 기호 원래 의 특수 한 의 미 를 제거한다
/ n Enter
/t teb
n 을 리 턴 으로 바꾸다
[root@lidao ~]# echo -e "nood
bood
moon" nood bood moon

* 이전 문자 가 0 회 또는 0 회 이상 줄 마다 일치 함
[root@lidao ~]# grep '0*' /tmp/oldboy

ldboy.txt I am oldboy teacher! I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com our size is http://blog.oldboyedu.com my qq is 49000448

not 4900000448. my god ,i am not oldbey,but OLDBOY!

. * 모든 기호 (빈 줄 포함) 가 줄 마다 일치 합 니 다.
o 로 시작 하 는 내용.
[root@lidao ~]# grep '^.*O' /tmp/oldboy

my god ,i am not oldbey,but OLDBOY! 

특성 이 오 는 사람 은 매 칭 할 수 있 는 만큼 매 칭 하 는 것 을 거절 하지 않 는 다.
모든 o 가 연속 으로 나타 나 면 매 칭 설 이 멈 추 지 않 습 니 다.
() 전체 방향 참조 / 후 참조 표시
[] [abc] 는 하나의 문자 (매번 하나의 zifu 와 일치) 에 해당 하 며 a 또는 b 또는 c 와 일치 합 니 다.
[root@lidao ~]# grep '[abc]' /tmp/oldboy 

ldboy.txt I am oldboy teacher! I teach linux. 

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com our size is

http://blog.oldboyedu.com my god ,i am not oldbey,but OLDBOY!

모든 대문자 와 숫자
grep '[a-zA-Z0-9]' /tmp/oldboy
모든 소문 자 와 숫자
grep '[a-Z0-9]' /tmp/oldboy
모든 대소 문자
grep '[0-Z]' /tmp/oldboy
m 또는 n 또는 o 로 시작 하 는 줄 보이 기
[root@lidao ~]# grep '[1]' /tmp/oldboy 

my blog is http://oldboy.blog.51cto.com our size is

http://blog.oldboyedu.com my qq is 49000448 not 4900000448.

my god ,i am not oldbey,but OLDBOY!

m 또는 n 또는 점 으로 끝 나 는 줄
grep '[mo.]$' /tmp/oldboyI teach linux. not 4900000448.

m 또는 n 또는 o 로 시작 하고 m 또는 n 또는 점 으로 끝 나 는 줄 보이 기
[root@lidao ~]# grep '[2].*[mo.]$' /tmp/oldboy 

not 4900000448. {}

[^ abc] 싫어 a 싫어 b 싫어 c
grep '[^abc]' /tmp/oldboy

[^ abc] a 나 b 또는 c 가 포함 되 지 않 은 모든 줄 을 문자 로 걸 러 내지 마 십시오.
grep - v 안 돼.
결론 ^. *. * \ [] [^]
확장 정규
+ 이전 문자 연속 또는 연속 1 회 또는 여러 번 일반 배합 [] 사용
[root@lidao ~]# egrep '[a-Z]+' /tmp/oldboy 

ldboy.txt I am oldboy teacher!

I teach linux. I like badminton ball ,billiard ball and chinese chess! 

my blog is http://oldboy.blog.51cto.com our size is

http://blog.oldboyedu.com my qq is 49000448 not 4900000448. my god ,i am not oldbey,but OLDBOY!

| 혹시
[root@lidao ~]# egrep 'oldboy|linux' /tmp/oldboy I am oldboy teacher!

I teach linux. my blog is

http://oldboy.blog.51cto.com our size is http://blog.oldboyedu.com 

() 작은 괄호 가 묶 인 내용 은 하나의 전체 에 해당 한다.
표현 후 인용 (역방향 참조)
{} 연속 출현
{n, m} 앞의 문자 와 최소 n 번, 최대 m 번 일치 합 니 다.
0 이 최소 2 번 나타 나 고 최대 3 번 나타 나 는 내용 을 표시 합 니 다.
[root@lidao ~]# egrep '0{2,3}' /tmp/oldboy

my qq is 49000448
not 4900000448.

=0 * =1 +
b {m, n} 이전 문자 연속 m 회 출현
b {m,} 이전 문자 연속 최소 m 회
b {, n} 이전 문자 연속 최대 n 회
? 이전 문자 와 일치 하여 0 번 또는 한 번 반복 합 니 다.
[root@lidao ~]# egrep '0?' /tmp/oldboy

ldboy.txt
I am oldboy teacher!
I teach linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com 
our size is http://blog.oldboyedu.com 
my qq is 49000448

not 4900000448.
my god ,i am not oldbey,but OLDBOY! 

총 결 | () {}?

좋은 웹페이지 즐겨찾기