Heim Backend-Entwicklung PHP-Tutorial Globaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele)

Globaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele)

Nov 01, 2021 am 11:20 AM
php 正则表达式

Im vorherigen Artikel habe ich Ihnen „Spannende Grundlagen regulärer Ausdrücke in PHP (detaillierte Erklärung mit Abbildungen)“ vorgestellt, der Ihnen eine kurze Einführung in einige Grundkenntnisse regulärer Ausdrücke gegeben hat Funktionen regulärer Ausdrücke. Ich hoffe, es wird für alle hilfreich sein!

Globaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele)

Im vorherigen Artikel haben wir einige grundlegende Definitionen regulärer Ausdrücke und die grundlegende Anwendung der Funktion preg_match() vorgestellt. Der Hauptzweck der Verwendung regulärer Ausdrücke besteht darin, einfache Methoden zu verwenden leistungsstarke Funktionen. Um einfach, effektiv und leistungsstark zu sein, sind die Regeln für reguläre Ausdrücke kompliziert und es ist noch schwieriger, korrekte und effektive reguläre Ausdrücke zu erstellen, sodass die Verwendung nur einer preg_match()-Funktion nicht ausreicht . preg_match() 函数的基础应用,使用正则表达式的主要目的就是为了通过简单的办法来实现强大的功能。为了简单、有效而又不失强大,造成了正则表达式规则的复杂,构建正确、有效的正则表达式更是难度较大,所以只用一个preg_match() 函数不足以应付。

正则表达式是在处理文本数据时的一项重要而复杂的技术。而一些文本编辑器也使用正则表达式实现高级别的“搜索/替换”功能。想要实现更多的功能就需要了解更多的函数,接下来我们就来看一下,正则表达式更多的函数知识吧。

<strong><span style="font-size: 18px;">preg_match_all()</span></strong><strong><span style="font-size: 18px;"></span></strong>函数

之前我们只介绍了preg_match() 函数这一种基础函数,在 PHP 中还有一个和 preg_match() 函数极为类似的函数——preg_match_all(),该函数可以搜索字符串中所有可以和正则表达式匹配的结果。

该函数的语法格式如下:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
Nach dem Login kopieren

其中需要注意的是:

$pattern表示要搜索的模式,也就是定义好的正则表达式;$subject表示要搜索的字符串;$matches表示可选参数是个多维数组,用来存放所有匹配的结果, 数组排序通过 $flags 指定;$offset表示可选参数,$offset 用于从目标字符串中指定位置开始搜索,它的单位是字节。

$flags表示可选参数,其中它可以结合下面几个标记使用,

  • <strong>PREG_PATTERN_ORDER</strong>

结果排序为 $matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一个子组的所有匹配,以此类推。

  • <strong>PREG_SET_ORDER</strong>

结果排序为 $matches[0] 包含第一次匹配得到的所有匹配(包含子组), $matches[1] 是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

  • <strong>PREG_OFFSET_CAPTURE</strong>

如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。注意这会改变 $matches 中的每一个匹配结果字符串元素,使其成为一个第 0 个元素为匹配结果字符串,第 1 个元素为匹配结果字符串在 subject 中的偏移量。

其中不能同时使用 PREG_PATTERN_ORDER PREG_SET_ORDER,preg_match_all() 函数可以返回 $pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE

接下来我们通过示例来看一下preg_match_all() 函数的应用,匹配一个字符串,示例如下:

<?php
    $subject = "abcdefghijkdefabcedfdefxyzdef";
    $pattern_1 = &#39;/(def)(abc)/&#39;;
    $num_1 = preg_match_all($pattern_1, $subject, $matches_1,PREG_PATTERN_ORDER);
    echo "<pre class="brush:php;toolbar:false">";
    var_dump($matches_1);
    var_dump($num_1);
    $pattern_2 = &#39;/(def)(abc)/&#39;;
    $num_2 = preg_match_all($pattern_2, $subject, $matches_2,PREG_OFFSET_CAPTURE, 3);
    var_dump($matches_2);
    var_dump($num_2);
?>
Nach dem Login kopieren

输出结果:

Globaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele)

由上述示例中,我们便完成了通过preg_match_all() 函数来匹配一个字符串。通过preg_match_all() 函数的应用,可以完成全局正则表达式匹配。

那接下来那我们看一下怎样完成检测与给定模式匹配的数组元素。这时候就要用到preg_grep() 函数了。

<strong><span style="max-width:90%">preg_grep() </span></strong>Reguläre Ausdrücke sind eine wichtige und komplexe Technik bei der Verarbeitung von Textdaten. Einige Texteditoren verwenden auch reguläre Ausdrücke, um übergeordnete „Suchen/Ersetzen“-Funktionen zu implementieren. Wenn Sie mehr Funktionen implementieren möchten, müssen Sie mehr Funktionen kennen. Schauen wir uns als Nächstes mehr Funktionswissen über reguläre Ausdrücke an. </strong></p>preg_match_all()<p></p><p><br/></p>🎜🎜🎜 Funktion🎜🎜🎜🎜Vorher haben wir nur die Grundfunktion von preg_match() eingeführt Eine Funktion in PHP, die der Funktion preg_match() sehr ähnlich ist – preg_match_all(). Diese Funktion kann nach allen Ergebnissen in der Zeichenfolge suchen, die mit dem regulären Ausdruck übereinstimmen können. . 🎜🎜Das Syntaxformat dieser Funktion ist wie folgt: 🎜

preg_grep($pattern, $input [, $flags = 0 ])
Nach dem Login kopieren
🎜Was zu beachten ist: 🎜🎜🎜$pattern stellt das zu durchsuchende Muster dar, bei dem es sich um einen definierten regulären Ausdruck $subject gibt die zu durchsuchende Zeichenfolge an; $matches gibt an, dass der optionale Parameter ein mehrdimensionales Array ist, das zum Speichern aller übereinstimmenden Ergebnisse verwendet wird $flags ; $offset stellt einen optionalen Parameter dar, der verwendet wird, um die Suche ab der angegebenen Position in der Zielzeichenfolge zu starten. 🎜🎜$flags stellt optionale Parameter dar, die in Kombination mit den folgenden Tags verwendet werden können: 🎜
  • 🎜🎜PREG_PATTERN_ORDER🎜🎜
🎜Die Ergebnisse werden sortiert als $matches[0] speichert alle Übereinstimmungen des vollständigen Musters, $matches[1] speichert alle Übereinstimmungen der ersten Untergruppe und so weiter. 🎜
  • 🎜🎜PREG_SET_ORDER🎜🎜
🎜Die Ergebnisse werden nach $matches[0] sortiert einschließlich der ersten Alle Übereinstimmungen (einschließlich Untergruppen), die durch eine Übereinstimmung erhalten wurden, $matches[1] ist ein Array, das alle Übereinstimmungen (einschließlich Untergruppen) enthält, die durch die zweite Übereinstimmung erhalten wurden, und so weiter. 🎜
  • 🎜🎜PREG_OFFSET_CAPTURE🎜🎜
🎜Wenn dieses Tag übergeben wird, findet jeder eine Übereinstimmung wird mit erhöhtem Offset relativ zur Zielzeichenfolge zurückgegeben. Beachten Sie, dass dadurch jedes Element der Übereinstimmungsergebniszeichenfolge in $matches geändert wird, sodass es zu einer Übereinstimmungsergebniszeichenfolge wird, wobei das 0. Element die Übereinstimmungsergebniszeichenfolge und das 1. Element die Übereinstimmungsergebniszeichenfolge im Betreff-Offset ist . 🎜🎜 PREG_PATTERN_ORDER und PREG_SET_ORDER können nicht gleichzeitig verwendet werden. Die Funktion preg_match_all() kann die Anzahl der Übereinstimmungen von $pattern zurückgeben (möglicherweise 0). , es gibt FALSE zurück. 🎜🎜Als nächstes schauen wir uns die Anwendung der Funktion preg_match_all() anhand eines Beispiels zum Abgleichen einer Zeichenfolge an. Das Beispiel lautet wie folgt: 🎜
<?php
    $test_arr = array(
        &#39;PHP中文网&#39;,
        &#39;http://www.php.cn/&#39;,
        &#39;php教程&#39;,
        &#39;abcdefg&#39;
    );
    $preg = &#39;/^[a-z]/&#39;;
    $preg_arr_1 = preg_grep($preg, $test_arr);
    $preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($preg_arr_1);
    var_dump($preg_arr_2);
?>
Nach dem Login kopieren
Nach dem Login kopieren
🎜Ausgabeergebnis: 🎜🎜Globaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele)🎜🎜Aus dem obigen Beispiel haben wir den Abgleich einer Zeichenfolge durch preg_match_all() abgeschlossen. Funktion. Der globale Abgleich regulärer Ausdrücke kann durch die Anwendung der Funktion preg_match_all() abgeschlossen werden. 🎜🎜Dann werfen wir einen Blick darauf, wie man Array-Elemente erkennt, die einem bestimmten Muster entsprechen. Zu diesem Zeitpunkt wird die Funktion preg_grep() verwendet. 🎜🎜🎜🎜preg_grep() 🎜🎜🎜🎜function🎜🎜🎜🎜Mit regulären Ausdrücken können nicht nur Zeichenfolgen, sondern auch Elemente in Arrays abgeglichen werden. Die Funktion preg_grep() in PHP kann alle Elemente in einem Array durchsuchen und ein Array aller Elemente zurückgeben, die dem regulären Ausdruck entsprechen. Das Syntaxformat dieser Funktion lautet wie folgt: 🎜rrreee🎜 Zu beachten ist: 🎜🎜

$pattern表示要搜索的模式,也就是定义好的正则表达式;$input表示要搜索的数组;$flags表示可选参数,可以设置为 PREG_GREP_INVERT,这时函数会返回数组中与给定模式 $pattern 不匹配的元素组成的数组。perg_grep() 函数将遍历 $input 数组中的每一个元素,让该元素与模式 $pattern 进行匹配,然后将匹配成功或者匹配失败的元素返回。

接下来,我们通过示例来看一下使用 perg_grep() 函数匹配数组中的元素,示例如下:

<?php
    $test_arr = array(
        &#39;PHP中文网&#39;,
        &#39;http://www.php.cn/&#39;,
        &#39;php教程&#39;,
        &#39;abcdefg&#39;
    );
    $preg = &#39;/^[a-z]/&#39;;
    $preg_arr_1 = preg_grep($preg, $test_arr);
    $preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($preg_arr_1);
    var_dump($preg_arr_2);
?>
Nach dem Login kopieren
Nach dem Login kopieren

输出结果:

Globaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele)

上述示例便是通过preg_grep() 函数匹配数组中的元素。

大家如果感兴趣的话,可以点击《PHP视频教程》、《正则表达式手册》进行更多关于PHP和正则表达式知识的学习。

Das obige ist der detaillierte Inhalt vonGlobaler regulärer Ausdrucksabgleich und übereinstimmende Array-Elemente in PHP (detaillierte Beispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles