Aktueller Standort: Startseite> Neueste Artikel> Wie verwende ich die Funktion preg_grep, um Arrayelemente zu filtern und zu übereinstimmen, die reguläre Ausdrücke entsprechen? Detaillierte Schrittanalyse

Wie verwende ich die Funktion preg_grep, um Arrayelemente zu filtern und zu übereinstimmen, die reguläre Ausdrücke entsprechen? Detaillierte Schrittanalyse

gitbox 2025-06-19

PREG_GREP ist eine sehr nützliche Funktion in PHP, die Elemente in einem Array basierend auf regulären Ausdrücken filtert und übereinstimmt. Wenn Sie ein Array haben und Elemente herausfiltern möchten, die mit einer regulären Ausdrucksregel entsprechen, ist PREG_GREP eine sehr effiziente Wahl.

In diesem Artikel wird die Verwendung der Funktion preg_grep ausführlich vorgestellt und spezifische Beispiele verwendet, um allen die Funktionen besser zu verstehen.

1. Grundlegende Syntax der Funktion preg_grep

 <span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$flags</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
  • $ muster : Dies ist ein regulärer Ausdruck, und PHP stimmt auf der Grundlage dieser Regelmäßigkeitelemente im Array überein.

  • $ Eingabe : Das zu filterne Array.

  • $ flags : Ein optionales Flag -Parameter, der den zurückgegebenen Array -Typ bestimmt. Häufig verwendete Flags sind preg_grep_invert und preg_grep_array .

2. Der Rückgabewert der Funktion preg_grep

PREG_GREP gibt ein neues Array zurück, das alle Elemente enthält, die dem regulären Ausdruck entsprechen. Wenn keine Elemente mit dem regulären Ausdruck übereinstimmen, wird ein leeres Array zurückgegeben.

3. Verwenden Sie Beispiele

3.1 Grundnutzung

Angenommen, wir haben ein Array mit mehreren Zeichenfolgen. Wir wollen alle Zeichenfolgen mit Zahlen herausfiltern. Wir können die Funktion preg_grep verwenden, um mit regulären Ausdrücken zusammenzuarbeiten.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Stimmen Sie Zahlen mit Zahlen überein</span></span><span>

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ausgabe:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry45
)
</span></span>

In diesem Beispiel gibt die Funktion preg_grep zwei Zeichenfolgen mit Zahlen zurück.

3.2 Umkehrfilterung mit dem Flag preg_grep_invert

Wenn Sie Elemente erhalten möchten, die nicht den regulären Ausdrücken entsprechen, können Sie das Flag preg_grep_invert verwenden. Auf diese Weise gibt die Funktion Elemente zurück, die nicht mit dem regulären Ausdruck übereinstimmen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Stimmen Sie Zahlen mit Zahlen überein</span></span><span>

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>, PREG_GREP_INVERT);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ausgabe:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; date
)
</span></span>

Durch preg_grep_invert wird eine Zeichenfolge, die keine Zahlen enthält, zurückgegeben.

3.3 Verwenden Sie das Flag preg_grep_array, um die Taste des Arrays zu erhalten

Wenn Sie möchten, dass das zurückgegebene Ergebnis die Schlüssel des Arrays beibehält, können Sie das Flag preg_grep_array verwenden. Dies ist sehr nützlich, wenn Sie den ursprünglichen Array -Index beibehalten müssen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Stimmen Sie Zahlen mit Zahlen überein</span></span><span>

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>, PREG_GREP_ARRAY);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ausgabe:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry45
)
</span></span>

Auf diese Weise enthält das zurückgegebene Array die Schlüssel des ursprünglichen Arrays.

4. Erweiterte Verwendung: Mehrere reguläre Übereinstimmungen

Wenn Sie in einem Array mehrere reguläre Regeln auf Elemente anwenden möchten, können Sie mehrere reguläre Ausdrücke gemeinsam verwenden.

Zum Beispiel können wir zuerst alle Elemente mit Zahlen übereinstimmen und dann Zeichenfolgen mit einer Länge von mehr als 6 übereinstimmen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>, </span><span><span class="hljs-string">"watermelon321"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Stimmen Sie Zahlen mit Zahlen überein</span></span><span>

</span><span><span class="hljs-comment">// verwenden preg_grep Filtern Sie Elemente mit Zahlen heraus</span></span><span>
</span><span><span class="hljs-variable">$matched</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);

</span><span><span class="hljs-comment">// Die Länge herausfiltern ist größer als6Elemente</span></span><span>
</span><span><span class="hljs-variable">$long_words</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-string">'/^.{7,}$/'</span></span><span>, </span><span><span class="hljs-variable">$matched</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$long_words</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Ausgabe:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; watermelon321
)
</span></span>

In diesem Beispiel filtern Sie zuerst die Elemente mit Zahlen heraus und filtern Sie die Ergebnisse ein zweites Mal, um Zeichenfolgen mit Längen von mehr als 6 zu finden.

5. Zusammenfassung

preg_grep ist eine sehr leistungsstarke Funktion, die zum Filtern von Elementen in einem Array basierend auf regulären Ausdrücken geeignet ist. Durch die Verwendung seiner regulären Ausdrücke und Flag -Optionen können Sie problemlos eine Vielzahl komplexer Übereinstimmungs- und Filteranforderungen erreichen. Ich hoffe, dass die Einführung in diesem Artikel Ihnen helfen kann, die Verwendung von preg_grep besser zu verstehen und Ihre Effizienz bei der PHP -Programmierung zu verbessern.