Dieses Mal werde ich Ihnen die Verwendung von regulären Ausdrücken unter Linux ausführlich erklären. Was sind die Vorsichtsmaßnahmen bei der Verwendung regulärer Ausdrücke unter Linux? Schauen Sie mal rein.
1. Zusammensetzung
Gewöhnliche Zeichen: gewöhnliche Zeichenfolgen, keine besondere Bedeutung
Sonderzeichen: haben eine besondere Bedeutung in regulären Ausdrücken Die Bedeutung von
Gemeinsame Metazeichen in regulären Ausdrücken [Sonderzeichen]
2. Metazeichen in POSIX BRE [Basic] und ERE [Extended]
: Wird normalerweise verwendet um die Sonderbedeutung nachfolgender Zeichen ein- oder auszuschalten, z. B. (...) [Es handelt sich um ein Escape-Zeichen, das die Sonderbedeutung des Symbols entfernt, (), {} usw. haben in der Shell eine Sonderbedeutung]. und .:
[root@localhost ~]# cat -n test.txt2.1, .: Übereinstimmung mit jedem einzelnen Zeichen (außer null, das nicht leer sein darf)1 gd
2 god
3
4 good
5 goood
6 goad
7
8 gboad
[root@localhost ~]# grep -n "." test.txt2.2, : Entspricht dem vorhergehenden Zeichen beliebig oft, z. B. o, das kein o, ein o oder mehrere o sein kann1:gd
2:god
4:good
5:goood
6:goad
8:gboad
[root@localhost ~]# grep -n "go.d" test.txt
4:good
6:goad
[root@localhost ~]# grep -n "*" test. txt*2.3, .: Entspricht jedem Zeichen ( match all), kann leer sein**[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 : gut
5:goood
6:goad
8:gboad
9:gbad
11:kgbad
[root@localhost ~]# grep -n ".*" test.txt2.4, ^: Passen Sie den folgenden regulären Ausdruck an, mit .. .beginnt mit1:gd
2:god
3 :
4:gut
5:gut
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, kann leer sein]
2:god
4:good
5:goood
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
[root@localhost tmp]# grep "^root" /etc/passwd2.5, $: Entspricht dem unmittelbar vorhergehenden regulären Ausdruck, der mit ... endetroot:x:0:0:root:/root:/bin/bash
[root@localhost tmp]#
[root@localhost tmp]# grep "bash$" /etc/passwd |. head -12.6, []: Entspricht einem beliebigen Zeichen in eckigen Klammern (z als [sS], entspricht s oder entspricht S), wobei ein Bindestrich (-) verwendet werden kann, um den Bereich der Bindestriche anzugeben (z. B. [(0-9)], entspricht jedem Zeichen von 0-9) ; -9] Wenn das ^-Symbol an der ersten Position der eckigen Klammer erscheint, bedeutet dies, dass es mit einem beliebigen Zeichen übereinstimmt, das nicht in der Liste enthalten ist.root:x:0:0:root:/root:/bin/bash
[root@localhost tmp]#
^ $: bedeutet a Leerzeile
„#|^$“: Entspricht Kommentarzeilen und Leerzeilen, die mit # beginnen
[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
god
[root @localhost ~]#
[root@localhost tmp]# cat test
do
does
doxy
[root@localhost tmp]# grep -E "do(es)?"
do
does
doxy
[root@localhost tmp]#
3. Zeichen nur in POSIX BRE (Basic Regular)
{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 nur in POSIX ERE (Extended Regular)
4.1: Dasselbe wie bei BRE die gleiche Funktion
[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. +: Übereinstimmung mit einem oder mehreren Malen des vorherigen regulären Ausdrucks
[root@ localhost ~]# egrep "go+d" test.txt
god
good
goood
[root@localhost ~]#
4.3, |: Zeigt Übereinstimmung an mehrere Zeichenfolgen [oder Beziehung]
[root@localhost ~]# grep -E "3306|1521" /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 15 21/udp # nCube License Manager
[root@localhost ~]#
4.4, ( ): Gruppenfilterung, Rückwärtsreferenz
Gruppenfilterung
() nach Direkter Verweis; Der passende Teil verwendet Klammern. Der Inhalt der ersten Klammer kann im späteren Teil als 1 ausgegeben werden.[root@localhost ~]# echo "glad" > > 🎜>[root@localhost ~]# egrep "(la|oo)" test.txt
gut
gut
froh
[root@localhost tmp]# ifconfig |sed -rn 's#.*addr:(.*)(B.*)$#1#gp'192.168.4.27
5. Reguläre Ausdrücke Metazeichen
5. b: Passen Sie eine Wortgrenze an[root@localhost tmp]# cat testB: Übereinstimmung mit Nicht-Wort-Grenzen, im Gegensatz zu bdo
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]#
[root@localhost tmp]# grep „doB“ testmacht
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 numerischen Zeichen, äquivalent zu [^0-9]
5.5, w: Entspricht Buchstaben, Zahlen und Unterstrichen, entspricht [A-Za-z0-9_]
Es gibt viele Metazeichen, daher werde ich sie hier nicht einzeln auflisten
Fall: Optimierter Start
[root@localhost ~]# chkconfig --list| ", $1,"off"}'|bash
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zu PHP Chinesische Website!
Empfohlene Lektüre:
Detaillierte Erläuterung der Schritte zur Verwendung der JS-String-Methode
Detaillierte Erläuterung der Schritte zur Verwenden Sie die JS-Array-Methode
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Verwendung regulärer Ausdrücke unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!