Die grundlegende Syntax der MB_Ereg -Funktion lautet wie folgt:
<span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(pattern, </span><span><span class="hljs-keyword">string</span></span><span>, &regs)
</span></span>
Muster : Das Muster regulärer Ausdrücke.
String : Die Zielzeichenfolge, die übereinstimmt werden muss.
Regs : Dies ist ein optionaler Parameter, um die passenden Ergebnisse zu speichern. Wenn dieser Parameter bereitgestellt wird, speichert MB_ereg den passenden Teil in den Array -Regs . Das Array -Index 0 entspricht dem gesamten Übereinstimmungsergebnis, und die nachfolgenden Indexs entsprechen dem Matching -Ergebnis des Subpatterns.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"WillkommenPHPTutorial"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"PHP"</span></span><span>;
</span><span><span class="hljs-variable">$regs</span></span><span> = [];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$regs</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Erfolgreich übereinstimmen\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$regs</span></span><span>); </span><span><span class="hljs-comment">// Das erfasste Matching -Ergebnis ausgeben</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Match fehlgeschlagen\n"</span></span><span>;
}
</span></span>
Wenn die Zeichenfolge "Willkommen zum PHP -Tutorial" "PHP" enthält, gibt MB_EREG true zurück und speichert den Matching "PHP" im $ Regs -Array.
Der Schlüssel zum Erfassen der passenden Ergebnisse liegt im Regs -Parameter. Mit diesem Parameter speichert MB_ereg den passenden Inhalt nacheinander und kann die passenden Ergebnisse mehrerer Subexpressionen erfassen.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Das istPHPUndMySQLKombinationsbeispiele"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"(PHP)(Und)(MySQL)"</span></span><span>;
</span><span><span class="hljs-variable">$regs</span></span><span> = [];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$regs</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Erfolgreich übereinstimmen\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$regs</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Match fehlgeschlagen\n"</span></span><span>;
}
</span></span>
Ausgangsergebnis:
<span><span>Erfolgreich übereinstimmen
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => PHPUndMySQL
[</span><span><span class="hljs-number">1</span></span><span>] => PHP
[</span><span><span class="hljs-number">2</span></span><span>] => Und
[</span><span><span class="hljs-number">3</span></span><span>] => MySQL
)
</span></span>
In diesem Beispiel fängt der reguläre Ausdruck (PHP) (und) (MySQL) die passenden Ergebnisse von drei Subpattern, nämlich "PHP" und " und " MySQL " ein. $ regs [0] speichert die gesamte passende Zeichenfolge und die folgenden $ regs [1] , $ regs [2] und $ regs [3] sparen die passenden Ergebnisse jedes Subpatterns.
Die von MB_ereg verwendete reguläre Expressionssyntax ähnelt den häufigen regulären Ausdrücken, aber es gibt einige Unterschiede, insbesondere im Umgang mit Multibyte -Zeichen. Achten Sie besonders auf den Charakter -festgelegten Bereich der regulären Ausdrücke und die Fähigkeiten bei der Verarbeitung chinesischer Charaktere.
<span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"^[\x{4e00}-\x{9fa5}]+$"</span></span><span>; </span><span><span class="hljs-comment">// Passen Sie nur chinesische Charaktere an</span></span><span>
</span></span>
Dieser reguläre Ausdruck enthält nur Zeichenfolgen, die chinesische Zeichen enthalten (Unicode -Codierungsbereich: \ x {4e00} bis \ x {9fa5} ).
Bei der Verwendung von MB_ereg sollte der Regs -Parameter in Referenzformular übergeben werden, um sicherzustellen, dass das Matching -Ergebnis erfasst wird. Andernfalls kann das $ Regs -Array keine Daten zurückgeben.
MB_EREG gibt einen booleschen Wert zurück, der angibt, ob die Übereinstimmung erfolgreich ist. Rückgabe true , wenn das Match erfolgreich ist, ansonsten return falsch .
Um sicherzustellen, dass der Multibyte -Zeichensatz ordnungsgemäß funktioniert, muss normalerweise die korrekte Zeichenkodierung festgelegt werden, bevor Sie MB_EREG aufrufen. Sie können mb_internal_encoding () verwenden, um die Codierung festzulegen:
<span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>
Wenn Sie sich mit einem nicht-UTF-8-codierten Zeichensatz (z. B. GBK oder Shift-JIS) befassen, müssen Sie sicherstellen, dass die Codierung korrekt eingestellt ist.
Da MB_ereg eine Funktion ist, die für Multibyte -Zeichensätze optimiert ist, kann seine Leistung im Vergleich zu regelmäßigen regulären Übereinstimmungen durch Zeichensätze und Stringlängen beeinflusst werden. Daher wird empfohlen, bei der Verarbeitung großer Datenmengen auf die Optimierung zu achten, z.
Die MB_ereg -Funktion bietet uns ein leistungsstarkes Tool in PHP, um die regelmäßige Übereinstimmung von Multibyte -Zeichensätzen zu verarbeiten. Durch die korrekte Verwendung des Parameters Regs können wir die passenden Ergebnisse problemlos erfassen und verarbeiten. Wenn Sie verstehen, wie Sie regelmäßige Ausdrücke schreiben, Parameter übergeben und eine Codierung festgelegt haben, können Sie MB_EREG effizienter für die String -Verarbeitung verwenden.