In diesem Artikel wird hauptsächlich die preg_replace()-Methode zum regelmäßigen Ersetzen aller qualifizierten Zeichenfolgen in PHP vorgestellt. Sie hat einen bestimmten Referenzwert. Jetzt können Freunde in Not darauf verweisen.
PHP preg_replace () Die reguläre Ersetzung unterscheidet sich von der regulären Javascript-Ersetzung. PHP preg_replace() ersetzt standardmäßig alle Elemente, deren Symbole den Bedingungen entsprechen
Die Daten, die wir mit Programmen verarbeiten müssen, werden nicht immer im Voraus mit Datenbankdenken entworfen. Mit anderen Worten: Es kann nicht über die Datenbankstruktur gespeichert werden.
Zum Beispiel Parsing-Vorlagen der Template-Engine, Filterung sensibler Spam-Informationen usw.
Im Allgemeinen verwenden wir in diesem Fall reguläre Ausdrücke, um preg_match abzugleichen und preg_replace gemäß unseren Regeln zu ersetzen.
Aber in allgemeinen Anwendungen sind sie nichts anderes als Datenbank-CRUD, und es gibt nur sehr wenige Möglichkeiten, mit regulären Ausdrücken herumzuspielen.
Nach dem, was zuvor gesagt wurde, gibt es zwei Szenarien: statistische Analyse mit Matching-Verarbeitung und Ersetzung.
PHP preg_replace() reguläre Ersetzung. Im Gegensatz zur regulären Javascript-Ersetzung ersetzt PHP preg_replace() standardmäßig alle Elemente, deren Symbole den Bedingungen entsprechen.
preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)
Reguläre Ausdrücke sind in den meisten Sprachen ähnlich, es gibt jedoch auch subtile Unterschiede.
PHP Regulärer Ausdruck
Regelmäßige Zeichen | Regelmäßige Erklärung |
---|---|
Markieren Sie das nächste Zeichen als Sonderzeichen, oder ein Literalzeichen, ein Rückverweis oder ein oktales Escape-Zeichen. Beispielsweise entspricht „n“ dem Zeichen „n“. „\n“ entspricht einem Zeilenumbruchzeichen. Die Sequenz „\“ entspricht „“ und „(“ entspricht „(“. | |
^ | entspricht dem Anfang der Eingabezeichenfolge. Wenn das RegExp-Objekt festgelegt ist Das mehrzeilige Attribut ^ entspricht auch der Position nach „n“ oder „r“ |
$ | entspricht der Endposition der Eingabezeichenfolge, sofern festgelegt Entspricht auch der Position vor „n“ oder „r“. zoo". *Entspricht {0,} |
stimmt ein oder mehrere Male mit dem vorherigen Unterausdruck überein. . Beispielsweise kann „zo+“ mit „zo“ übereinstimmen, aber nicht mit „z“ . + ist äquivalent zu {1,} | Entspricht dem vorhergehenden Unterausdruck null oder einmal. in „tut“. ? ist äquivalent zu {0,1} 🎜> |
n ist eine nicht negative ganze Zahl, die beispielsweise eine bestimmte Anzahl an Übereinstimmungen aufweist: „o{2}“ kann nicht mit dem „o“ in „Bob“ übereinstimmen, kann jedoch mit zwei o in „food“ übereinstimmen „o{. 2,}“ kann beispielsweise nicht mit dem „o“ in „Bob“ übereinstimmen, aber es kann mit allen „o“ in „foooood“ übereinstimmen. o{0,}“ ist äquivalent zu „o*“. | |
m und n sind beide nicht negative ganze Zahlen, wobei n< =m stimmt mindestens n-mal überein. Beispielsweise entspricht „o{1,3}“ den ersten drei o in „foooood“. Beachten Sie das Komma und die beiden Zahlen. Zwischen | |
dürfen keine Leerzeichen stehen, wenn auf dieses Zeichen ein anderer Begrenzer (*,+,?,{) folgt. n},{n, }, {n,m}), der Übereinstimmungsmodus ist nicht gierig. Der nicht gierige Modus entspricht so wenig wie möglich von der gesuchten Zeichenfolge, während der standardmäßige gierige Modus so viel wie möglich von der gesuchten Zeichenfolge übereinstimmt Für die Zeichenfolge „oooo“ wird beispielsweise „o?“ mit einem einzelnen „o“ übereinstimmen, während „o+“ mit allen „o“s übereinstimmt. Punkte | passen zu jedem einzelnen Zeichen außer „n“. Verwenden Sie ein Muster wie „[sS]“ |
(?:pattern) | |
(?=pattern) | |
(?!pattern) | |
(?<=pattern) | |
(? | x|y | entspricht x oder y. Beispielsweise entspricht „z|food“ „z“ oder „food“. „(z|f)ood“ entspricht „zood“ oder „food“.
[xyz] | |
[^xyz] | Eine Reihe von Zeichen mit negativem Wert. Entspricht jedem Zeichen, das nicht enthalten ist. Beispielsweise würde „[^abc]“ mit „plin“ in „plain“ übereinstimmen. |
[a-z] | Zeichenbereich. Entspricht jedem Zeichen innerhalb des angegebenen Bereichs. „[a-z]“ entspricht beispielsweise jedem Kleinbuchstaben im Bereich „a“ bis „z“. Hinweis: Nur wenn der Bindestrich innerhalb der Zeichengruppe und zwischen zwei Zeichen steht, kann er den Zeichenbereich darstellen; wenn er am Anfang der Zeichengruppe steht, kann er nur den Bindestrich selbst darstellen 🎜> | [^a-z]
b | |
B | |
cx | |
d | |
D | |
f | |
n | |
r | |
s | |
S | |
t | |
v | |
w | |
W | |
xn | |
num | |
n | |
nm | |
nml | |
un | |