Heim > Backend-Entwicklung > PHP-Tutorial > Zusammenfassung häufig verwendeter regulärer PHP-Ausdrücke und grammatikalischer Anmerkungen

Zusammenfassung häufig verwendeter regulärer PHP-Ausdrücke und grammatikalischer Anmerkungen

WJ
Freigeben: 2023-04-08 17:54:01
nach vorne
3038 Leute haben es durchsucht

Grundlegende Syntax

Trennzeichen:

identifiziert den Anfang und das Ende eines regulären Ausdrucks. Verwenden Sie „/“ oder „ #' oder '{ }', da die Syntax '{ }' auch ein regulärer Ausdrucksoperator sein kann, wird die Verwendung zur Vermeidung von Verwirrung nicht empfohlen. Die empfohlene Verwendung ist wie folgt:

Copy$pattern = '/[0-9]/';  //我喜欢这个,看起来比较简洁 $pattern = '#[0-9]#';
Nach dem Login kopieren

Atome:

Sichtbare Atome: Zeichen in der Unicode-Codierungstabelle, die mit bloßem Auge sichtbar sind nach der Tastaturausgabe, zum Beispiel: Satzzeichen; : Newline n, Tab t, Leerzeichen usw. ,
Im Allgemeinen werden nur diese drei verwendet (Newline-Zeichen werden normalerweise zusammen mit anderen Zeichen abgeglichen, da nur Newline-Zeichen nicht abgeglichen werden können)
Tipps: Sie müssen ' hinzufügen ' vor dem passenden Operator. Zum Beispiel: '+'-Zeichen, bei Übereinstimmung müssen Sie '+'

Metazeichen schreiben

Atomische Filtermethode:

|. Übereinstimmung mit zwei oder mehreren Zweigauswahlen

[] entspricht jedem Atom in eckigen Klammern
[^] entspricht jedem Zeichen außer den Atomen in eckigen Klammern; duang oder [Dd]uang Beide können mit Duang und duang übereinstimmen
Intervallschrift: [a-z] entspricht den Zeichen von a bis z, [0-9] entspricht den Zeichen von 0 bis 9. Es kann auch [a-z0-9]
sein. Entspricht jedem Zeichen außer dem Zeilenumbruch.
d entspricht jeder Dezimalziffer, d. h. {0-9]
D entspricht jeder Nicht-Dezimalziffer [^ 0-9] entspricht [^d]
s, das einem unsichtbaren Atom entspricht, also [fnrtv]
S entspricht einem sichtbaren Atom, also [fnrtv], äquivalent zu [s]z
w Entspricht jeder Zahl, jedem Buchstaben oder Unterstrich, d [w]


Quantifier

{n} bedeutet, dass das Atom davor genau n-mal vorkommt.

[n] bedeutet, dass das vorhergehende Atom mindestens n-mal vorkommt
{n,m} erscheint mindestens n-mal und höchstens m-mal

* entspricht 0-mal, einmal oder mehrmals, d. h. {0,}
+ stimmt mit einem oder mehreren Mal überein, also mit {1,}
? Stimmt mit 0 oder 1 Mal überein, also mit {0,1}


Grenzkontrolle

^ entspricht der Startposition der Zeichenfolge

$ entspricht der Endposition der Zeichenfolge
Beispiel: ^John kann mit: John übereinstimmen, aber nicht mit: 123John , da die Zeichenfolge so angegeben ist, dass sie mit John beginnt. Beginnend mit



Mustereinheit

() entspricht dem gesamten Teil als Atom, wie zum Beispiel: (X |x)iaomi, das mit Xiaomi übereinstimmen kann

Korrekturmodus

Gieriger Abgleich

Wenn das Übereinstimmungsergebnis nicht eindeutig ist, Nimm das längere (Standard)

Lazy Matching

Wenn das Matching-Ergebnis nicht eindeutig ist, wähle das kürzere, füge einfach „U“ nach „/“ hinzu regulärer Ausdruck, zum Beispiel '/[0-9]/U'; Beispiel:

Copy$subject = "test__123123123";
preg_match('/test.+123/', $subject, $matches); //贪婪模式  var_dump($matches);
preg_match('/test.+123/U', $subject, $matches); //懒惰模式var_dump($matches);
Nach dem Login kopieren

Gemeinsame Korrekturmuster:

U Lazy Matching

i Ignoriere das Fall von englischen Buchstaben
x Ignorieren Sie Leerzeichen in regulären Ausdrücken

s Lassen Sie das Metazeichen „.“ mit allen Zeichen übereinstimmen, einschließlich Zeilenumbrüchen


Allgemeine Funktionen

preg_match

werden ausgeführt. Passen Sie den regulären Ausdruck an.

preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int
Nach dem Login kopieren

Muster: Zu suchendes Muster, Zeichenfolgentyp. Betreff: Eingabezeichenfolge. match: Wenn der Parameter „matches“ angegeben wird, wird er mit Suchergebnissen gefüllt und die Datenstruktur ist ein eindimensionales Array. Flags: können auf PREG_OFFSET_CAPTURE gesetzt werden, wobei das 0. Element des Suchergebnisses als übereinstimmende Zeichenfolge und das 1. Element als entsprechender Offset (Position) verwendet wird. Offset: Die Suche beginnt an der Startposition der Zielzeichenfolge.

Rückgabewert: Anzahl der Übereinstimmungen

Ähnlich wie bei der Funktion preg_match_all stimmen die Parameter mit preg_match überein

Unterschied:


preg_match: stimmt nur einmal überein, das Datenergebnis der Suche Strukturübereinstimmung ist ein eindimensionales Array preg_match_all: Übereinstimmung mit allen, die Datenstruktur der Suchergebnisübereinstimmung ist ein zweidimensionales Array.

preg_replace

Führt eine Suche und Ersetzung regulärer Ausdrücke durch und der Rückgabewert ist die ersetzte Zeichenfolge.

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
Nach dem Login kopieren

pattern: das zu durchsuchende Muster. Kann eine Zeichenfolge oder ein Array von Zeichenfolgen sein. Ersetzung: eine Zeichenfolge oder ein Array von Zeichenfolgen, die zum Ersetzen verwendet wird. Betreff: eine Zeichenfolge oder ein Array von Zeichenfolgen, die durchsucht und ersetzt werden soll. limit: die maximale Anzahl von Ersetzungen. Der Standardwert ist -1 (unbegrenzt). count: Anzahl der Ersetzungen.

Ähnlich wie bei der Funktion preg_filter sind die Parameter dieselben wie bei preg_replace

Unterschiede (der Unterschied ist nur sichtbar, wenn Arrays zum Abgleichen verwendet werden): preg_replace: gibt alle Ergebnisse zurück, unabhängig davon, ob es eine Ersetzung gibt oder nicht, nur preg_filter: gibt passende Ergebnisse zurück.


preg_split

Zeichenfolgen durch einen regulären Ausdruck trennen

preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array
Nach dem Login kopieren

$pattrn:用于搜索的模式,字符串形式。subject:输入字符串limit:将限制分隔得到的子串最多只有limit个,返回的最后一个 子串将包含所有剩余部分。flags:有以下标记的组合:
-- 1. PREG_SPLIT_NO_EMPTY: 返回分隔后的非空部分。
-- 2. PREG_SPLIT_DELIM_CAPTURE: 用分隔符'()'括号把匹配的捕获并返回。
-- 3. PREG_SPLIT_OFFSET_CAPTURE: 匹配返回时将会附加字符串偏移量

PREG_SPLIT_DELIM_CAPTURE这个参数可能比较难明白,举个例子看看:

Copy$subject = "1a23b";  
$a = preg_split('/[\d]/', $subject, -1, PREG_SPLIT_NO_EMPTY);  
var_dump($a);  
$a = preg_split('/([\d])/', $subject, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); 
var_dump($a);
Nach dem Login kopieren

输出如下:

array (size=2)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
array (size=5)
0 => string '1' (length=1)
1 => string 'a' (length=1)
2 => string '2' (length=1)
3 => string '3' (length=1)
4 => string 'b' (length=1)

preg_grep

返回匹配模式的数组条目

preg_grep ( string $pattern , array $input [, int $flags = 0 ] ) : array
Nach dem Login kopieren

$pattern:要搜索的模式,字符串形式$input:输入数组flags:如果不设置则返回匹配的数目,设置PREG_GREP_INVERT则返回不匹配的数目。

preg_quote

转义正则表达式字符,返回为转义后的字符串

preg_quote ( string $str [, string $delimiter = NULL ] ) : string

str:输入字符串delimiter:需要转义的字符串

Das obige ist der detaillierte Inhalt vonZusammenfassung häufig verwendeter regulärer PHP-Ausdrücke und grammatikalischer Anmerkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
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