Heim > Web-Frontend > js-Tutorial > Hauptteil

Tipps zur Verwendung regulärer Ausdrücke unter Linux

php中世界最好的语言
Freigeben: 2018-06-09 14:34:55
Original
1191 Leute haben es durchsucht

Dieses Mal gebe ich Ihnen Tipps zur Verwendung regulärer Ausdrücke unter Linux. Was sind die Vorsichtsmaßnahmen für die Verwendung regulärer Ausdrücke unter Linux? Das Folgende ist ein praktischer Fall.

1. Zusammensetzung

Gemeinsame Zeichen: gewöhnliche Zeichenfolgen, keine besondere Bedeutung
Sonderzeichen: haben besondere Bedeutung in regulären Ausdrücken
Gemeinsames Meta Zeichen [Sonderzeichen] in regulären Ausdrücken

2. Metazeichen in POSIX BRE [Basic] und ERE [Extended]

: Normalerweise Wird verwendet, um die Sonderbedeutung nachfolgender Zeichen ein- oder auszuschalten, z. B. (...) [ ist ein Escape-Zeichen, das die Sonderbedeutung des Symbols entfernt, (), {} usw. haben in der Shell eine Sonderbedeutung Bedeutung] Der Unterschied zwischen
und und:

[root@localhost ~]# cat -n test.txt
1 gd
2 god
3
4 gut
5 gut
6 goad
7
8 gboad

2.1, .: Entspricht jedem einzelnen Zeichen (außer null, das nicht leer sein darf) )

[root@localhost ~]# grep -n "." test.txt             🎜>6:goad
8:gboad
[root@localhost ~]# grep -n "go.d" test.txt
4:good
6:goad



2.2: Passen Sie das vorangehende Zeichen beliebig oft an, z. B. o, das kein o, ein o oder mehrere o sein kann

[root@localhost ~]# grep -n "*" test.txt
[root@localhost ~]# grep -n "o*" test.txt

1:gd

2:god
3:

4 :good
5:goood
6:goad
7:
8:gboad
[root@localhost ~]# echo "gbad" >>test.txt
[ root@localhost ~]# echo "pbad" >>test.txt
[root@localhost ~]# echo "kgbad" >>test.txt
[root@localhost ~]# echo " poad" >>test.txt
[root@localhost ~]# grep -n "go*" test.txt [o kann weggelassen werden, das g vor o muss übereinstimmen]
1:gd
2:god
4:good
5:goood
6:goad
8:gboad
9:gbad
11:kgbad



*2.3, .: Entspricht jedem Zeichen (übereinstimmt mit allen), kann leer sein**

[root@localhost ~]# grep -n ".*" test.txt
1 :gd

2:god

3:
4:good

5:goood
6:goad
7:
8:gboad
9:gbad
10:pbad
11:kgbad
12:poad
[root@localhost ~]# grep -n "go.*" test.txt
2:god
4:good
5:goood
6:goad
[root@localhost ~]# grep -n "po.*" test.txt
12:poad
[root@localhost ~]# echo " pgoad" >>test.txt
[root@localhost ~]# grep -n "go.*" test.txt [Jedes Zeichen existiert nach der Übereinstimmung mit go und kann leer sein]
2:god
4:gut
5:gut
6:goad
13:pgoad
[root@localhost ~]#
[root@localhost ~]# grep -n "o.*" test.txt
2:god
4:good
5:goood
6:goad
8:gboad
12:poad



2.4, ^: Entspricht dem folgenden regulären Ausdruck, beginnend mit...

[root@localhost tmp]# grep "^root" /etc/passwd
root: x:0: 0:root:/root:/bin/bash

[root@localhost tmp]#


2.5, $: Entspricht dem unmittelbar vorhergehenden regulären Ausdruck, der mit... endet.

[root@localhost tmp]# grep "bash$" /etc/passwd | head -1

root:x:0:0:root: /root:/bin/ bash
[root@localhost tmp]#

^$: bedeutet eine Leerzeile
"#|^$": entspricht Kommentarzeilen und Leerzeilen, die mit # beginnen




2.6, []: Übereinstimmung mit einem beliebigen Zeichen

in eckigen Klammern (z. B. [sS], Übereinstimmung mit s oder Übereinstimmung mit S), wobei Bindestriche (-) den Bereich der Bindestriche angeben (z. B. [(0 -9)], passend zu einem beliebigen Zeichen von 0–9);

[root@localhost tmp]# cat hosts

192.168.200.1
192.168.200.3

a.b.123.5
23.c.56.1

1456.1 .2.4
12.4.5.6.8
[root@localhost tmp]# grep -E '([0-9]{1,3}.){3}[0-9]{1,3} ' hosts
192.168.200.1
192.168.200.3
1456.1.2.4
12.4.5.6.8
[root@localhost tmp]# grep -E '^([0-9]{ 1,3}.){3}[0-9]{1,3}$' Hosts
192.168.200.1
192.168.200.3
[root@localhost tmp]#



2.7, ?: Entspricht null oder mehr Malen des vorherigen Zeichens

[root@localhost ~]# grep -E "go?d" test.txt
gd

Gott

[root@localhost ~]#
[root@localhost tmp]# cat test

do
tut
doxy
[root@localhost tmp]# grep - E „do(es)?“ test
do
does
doxy
[root@localhost tmp]#




3 (Grundlegende reguläre) Zeichen

{n,m}: Intervallausdruck, der mit dem einzelnen Zeichen übereinstimmt, bevor es [wiederholt, das folgende einzelne Zeichen wie https{0,1} wiederholt, d. h. s 0-1 Mal wiederholt. {n} bezieht sich auf eine n-fache Übereinstimmung; {n,m} bezieht sich auf eine n- bis m-fache Übereinstimmung, {n,} bezieht sich auf eine mindestens n-fache Übereinstimmung und {,m} entspricht höchstens m-maliger Übereinstimmung. [Escape-Zeichen]

4. Zeichen, die nur in POSIX ERE vorkommen (erweiterte reguläre Zeichen)

4.1, {n,m}: Gleiche Funktion als BREs {n,m}

[root@localhost tmp]# grep -E '^([0-9]{1,3}.){3}[0- 9]{ 1,3}$' Hosts
192.168.200.1
192.168.200.3

4.2, +: Entspricht einem oder mehreren der vorherigen regulären Ausdrücke

[root@localhost ~]# egrep "go+d" test.txt
Gott
gut
gut
[root@localhost ~]#

4.3, |: Zeigt die Übereinstimmung mehrerer Zeichenfolgen [oder Beziehungen] an

[root@localhost ~]# grep -E "3306|1521 " /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
n cube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
[root@localhost ~] #

4.4, ( ): Gruppenfilterung, Rückwärtsreferenz

Gruppenfilterung

[root@localhost ~]# echo "froh" >> test.txt
[root@localhost ~]# egrep "(la|oo)" test.txt
gut
gut
froh

() Rückverweis; wenn der vorherige übereinstimmende Teil Klammern verwendet, kann der Inhalt der ersten Klammer im späteren Teil als 1 ausgegeben werden;

[root@localhost tmp]# ifconfig |sed -rn 's#.*addr:(.*)(B.*)$#1#gp'
192.168 .4.27

5. Reguläre Ausdrucks-Metazeichen

5.1. b: Übereinstimmung mit einer Wortgrenze

[root@localhost tmp]# cat test
do
does
doxy
agdoeg
[root@localhost tmp]# grep "dob" test
do
[root @localhost tmp]# grep „bdo“ test 
do
does
doxy
[root@localhost tmp]# grep „bdoes“ test 
does
[ root@localhost tmp] # grep "bdob" test
do
[root@localhost tmp]#

B: Übereinstimmung mit Nicht-Wortgrenzen und b Im Gegenteil

[root@localhost tmp]# grep "doB" test 
macht
doxy
agdoeg
[root@localhost tmp]# grep "dob" test
macht
[root@localhost tmp]#

5.3, d: Entspricht einem numerischen Zeichen, äquivalent zu [0-9]

5.4, D: Entspricht einem nicht -numerisches Zeichen, äquivalent zu [^0-9]

5,5, w: Entspricht Buchstaben, Zahlen und Unterstrichen, äquivalent zu [A-Za-z0-9_]

Es gibt viele Metazeichen, daher werde ich sie hier nicht alle auflisten

Fall: Optimierter Start

[root@localhost ~]# chkconfig --list| |network|rsyslog|sshd|sysstat" | awk '{print "chkconfig",$1,"off"}'|bash


believe Nach dem Lesen des Falls In diesem Artikel beherrschen Sie die Methode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre

So verwenden Sie scss in Angular-Projekten

302-Statuscode in Axios

Das obige ist der detaillierte Inhalt vonTipps zur Verwendung regulärer Ausdrücke unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage