Aktueller Standort: Startseite> Neueste Artikel> Wie verwendete ich mb_convert_case mit regulären Ausdrücken, um eine flexible Fallumwandlung zu erreichen?

Wie verwendete ich mb_convert_case mit regulären Ausdrücken, um eine flexible Fallumwandlung zu erreichen?

gitbox 2025-09-19

1. Grundlegende Verwendung von mb_convert_case

Die Funktion mb_convert_case kann Zeichen in einer Zeichenfolge in den angegebenen oberen und unteren Fall konvertieren und drei Modi unterstützt:

  • Mb_case_upper : Konvertieren Sie zu allen Kapitalisierungen.

  • Mb_case_lower : Konvertieren Sie in alle Kleinbuchstaben.

  • MB_CASE_TITLE : Wandelt den ersten Buchstaben jedes Wortes in Großbuchstaben und Kleinbuchstaben für den Rest.

Beispielcode:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"hello world! Hallo,Welt!"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, MB_CASE_UPPER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe:HELLO WORLD! Hallo,Welt!</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, MB_CASE_LOWER, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);  </span><span><span class="hljs-comment">// Ausgabe:hello world! Hallo,Welt!</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, MB_CASE_TITLE, </span><span><span class="hljs-string">"UTF-8"</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe:Hello World! Hallo,Welt!</span></span><span>
</span></span>

2. Die Rolle regulärer Ausdrücke

Regelmäßige Ausdrücke (REGEX) sind ein leistungsstarkes String -Muster -Matching -Tool. Bei der Umsetzung komplexer String -Conversions können regelmäßige Ausdrücke uns helfen, die Teile, die konvertiert werden müssen, wie bestimmte Wörter, Buchstaben oder Symbole, genau zu finden und diese Teile dann in den Fall zu stellen.

Durch reguläre Ausdrücke können wir einige Regeln definieren und mb_convert_case kombinieren, um die übereinstimmenden Teile zu konvertieren, um einen flexibleren Effekt zu erzielen.

3.. Kombinieren Sie MB_Convert_Case mit regulären Ausdrücken

3.1 Beispiel: Verschließt den ersten Buchstaben jedes Wortes in der Zeichenfolge und den Kleinbuchstaben der anderen Buchstaben

Angenommen, wir haben eine Zeichenfolge, die den ersten Buchstaben jedes Wortes und in den anderen Buchstaben darstellen muss, aber gleichzeitig möchten wir den Fall bestimmter spezifischer Wörter (wie "Php") unberührt halten. Zu diesem Zeitpunkt finden Sie jedes Wort durch einen regulären Ausdruck und verwenden Sie mb_convert_case , um es zu erreichen.

Beispielcode:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"this is a php test, check PHP again."</span></span><span>;

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\b(\w+)\b/'</span></span><span>; </span><span><span class="hljs-comment">// Passen Sie die Wortgrenzen an</span></span><span>
</span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> (</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
    </span><span><span class="hljs-comment">// Verschleift die passenden Wörter</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], MB_CASE_TITLE, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
};

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

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:This Is A Php Test, Check Php Again.</span></span><span>
</span></span>

In diesem Beispiel entspricht der reguläre Ausdruck / \ B (\ W+) \ B / dem Inhalt aller Wortgrenzen (d. H. Jedes Wort) und wandelt dann den ersten Buchstaben jedes Wortes über die Funktion preg_replace_callback mit mb_convert_case in Großbuchstaben und Kleinbuchstaben um.

3.2 Beispiel: Umwandeln Sie den Fall in bestimmte Wörter

Manchmal müssen wir möglicherweise nur bestimmte spezifische Wörter in den Fall umwandeln, ohne andere Dinge zu beeinflussen. Zum Beispiel können wir alle "PHP" in "PHP" verwandeln, während die anderen Wörter gleich bleiben.

Beispielcode:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"I love php, and I am learning php in 2025."</span></span><span>;

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\bphp\b/i'</span></span><span>;  </span><span><span class="hljs-comment">// übereinstimmen“php”,Fall unempfindlich</span></span><span>
</span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> (</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
    </span><span><span class="hljs-comment">// 将übereinstimmen到的“php”In Kapital konvertieren</span></span><span>
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], MB_CASE_UPPER, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
};

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

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:I love PHP, and I am learning PHP in 2025.</span></span><span>
</span></span>

Der reguläre Ausdruck /\ bphp \ b /i hier entspricht allen von Fall unempfindlichen "PHP" -Wörtern. mb_convert_case wandelt sie in Großbuchstaben um.

4. Erweiterte Anwendung: Konvertieren Sie gemäß den Kontextbedingungen von Zeichen

In einigen komplexen Szenarien kann es erforderlich sein, zu entscheiden, ob der Fall auf der Grundlage der Position des Charakters im Kontext konvertiert werden soll. Beispielsweise sollten einige Abkürzungen oder Code-Snippets (wie "API") so bleiben, wie es ist, während andere Wörter unternommen werden können.

Beispielcode:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"the API is a powerful tool, API is awesome."</span></span><span>;

</span><span><span class="hljs-comment">// Verwenden Sie negative Lookahead, um bestehende auszuschließen“API”</span></span><span>
</span><span><span class="hljs-comment">// Dies wird sicherstellen“API”Nicht konvertiert,Andere Wörter werden normal konvertiert</span></span><span>
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\b(?!API\b)\w+\b/'</span></span><span>;
</span><span><span class="hljs-variable">$callback</span></span><span> = </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> (</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">mb_convert_case</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>], MB_CASE_TITLE, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
};

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

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;  </span><span><span class="hljs-comment">// Ausgabe:The API is A Powerful Tool, API is Awesome.</span></span><span>
</span></span>

In diesem Beispiel verwenden wir negative Lookahead (?! API \ B), um sicherzustellen, dass die "API" nicht konvertiert wird, während andere Wörter in akkordizierten ersten Buchstaben umgewandelt werden.

5. Zusammenfassung

Das Kombinieren von MB_Convert_Case und regulären Ausdrücken kann eine komplexere und flexiblere Fallkonvertierung erzielen. Dieser Ansatz eignet sich besonders für Szenarien, in denen Zeichen basierend auf bestimmten Regeln kontrolliert werden müssen (z. B. abgleichen bestimmte Wörter, ausgenommen bestimmte Teile oder je nach Kontext). Unabhängig davon, ob es sich um eine einfache globale Fallumwandlung oder eine Situation handelt, in der eine granulare Kontrolle erforderlich ist, kann die Kombination von mb_convert_case und regulären Ausdrücken eine sehr effiziente und kundenspezifische Lösung liefern.