Heim >Backend-Entwicklung >PHP-Tutorial >Beispielanalyse für die Verwendung regulärer PHP-Modifikatoren

Beispielanalyse für die Verwendung regulärer PHP-Modifikatoren

墨辰丷
墨辰丷Original
2018-05-29 09:42:081243Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung regulärer PHP-Modifikatoren vorgestellt. Er analysiert die Funktionen, Verwendungsmethoden und zugehörigen Vorsichtsmaßnahmen in Form von Beispielen im Detail Die Beispiele in diesem Artikel haben die Verwendung regulärer PHP-Modifikatoren erlernt. Teilen Sie es als Referenz mit allen wie folgt:

<?php
   //标记在整个模式之外;
   // 例://$mode="/\bis\b/U",其中U在外面;
  //修正符:i 不区分大小写的匹配;
     //如:"/abc/i"可以与abc或aBC或ABc等匹配;
  //修正符:m 将字符串视为多行,不管是那行都能匹配;
  //  例://模式为:$mode="/abc/m";
     //要匹配的字符串为:$str="bcefg5e\nabcdfe"
     //注意其中\n,换行了;abc换到了下一行;
     //$str和$mode仍可以匹配,修正符m使得多行也可匹配;
  //修正符:s 将字符串视为单行,换行符作为普通字符;
   // 例://模式为:$mode="/pr.y/";
      //要匹配字符串为:$str="pr\ny";
      //两者不可匹配; . 是除了换行以外的字符可匹配;
      //修改下模式为:$mode="/pr.y/s";
        //其中修正符s将\n视为普通字符,即不是换行;
      //最后两者可以匹配;
  //修正符:x 将模式中的空白忽略;
  //修正符:A 强制从目标字符串开头匹配;
   // 例://$mode="/abc/A";
      //可以与$str="abcsdfi"匹配,
      //不可以与$str2="sdsdabc"匹配;
      //因为$str2不是以abc开头;
  //修正符:D 如果使用$限制结尾字符,则不允许结尾有换行;
  //  例://模式为:$mode="/abc$/";
      //可以与最后有换行的$str="adshabc\n"匹配;
      //元子符$会忽略最后的换行\n;
      //如果模式为:$mode="/abc/D",
      //则不能与$str="adshabc\n"匹配,
      //修正符D限制其不可有换行;必需以abc结尾;
  //修正符:U 只匹配最近的一个字符串;不重复匹配;
  //  例:
  //   如模式为:
      $mode="/a.*c/";
      $str="abcabbbcabbbbbc" ;
      preg_match($mode,$str,$content);
      echo $content[0]; //输出:abcabbbcabbbbbc;
      //如果$mode="/a.*c/";变成$mode="/a.*c/U";
      // 则只匹配最近一个字符串,输出:abc;
//修正符:e 配合函数preg_replace()使用,
//      可以把匹配来的字符串当作正则表达式执行;
?>

Modifikator:

POSIX

Kompatible reguläre Ausdrücke haben keine Modifikatoren. Mögliche Modifikatoren, die in PERL-kompatiblen regulären Ausdrücken verwendet werden (Leerzeichen und Zeilenumbrüche in den Modifikatoren werden ignoriert, andere Zeichen verursachen Fehler):

i

(PCRE_CASELESS): Groß- und Kleinschreibung beim Abgleich ignorieren.

m

(PCRE_MULTILINE): Wenn dieser Modifikator festgelegt ist, stimmen der Zeilenanfang (^) und das Zeilenende ($) mit dem Anfang und dem Ende des Ganzen überein Zeichenfolge. Passt auch nach und vor dem Zeilenumbruchzeichen (n).

s

(PCRE_DOTALL): Wenn dieser Modifikator festgelegt ist, entspricht das Punkt-Metazeichen (.) im Muster allen Zeichen, einschließlich Zeilenumbrüchen. Ohne diese Einstellung werden Zeilenumbrüche nicht berücksichtigt.

x

(PCRE_EXTENDED): Wenn dieser Modifikator festgelegt ist, werden Leerzeichen im Muster vollständig ignoriert, mit Ausnahme derjenigen, die maskiert sind oder innerhalb einer Zeichenklasse liegen.

e

: Wenn dieser Modifikator gesetzt ist, führt preg_replace() die normale Ersetzung der Rückreferenz in der Ersetzungszeichenfolge durch, wertet sie als PHP-Code aus und verwendet das Ergebnis um die gesuchte Zeichenfolge zu ersetzen. Nur preg_replace() verwendet diesen Modifikator, andere PCRE-Funktionen ignorieren ihn.

A

(PCRE_ANCHORED): Wenn dieser Modifikator gesetzt ist, wird das Muster gezwungen, „verankert“ zu sein, d. h. es wird gezwungen, nur vom Anfang an übereinzustimmen Zielzeichenfolge.

D

(PCRE_DOLLAR_ENDONLY): Wenn dieser Modifikator festgelegt ist, stimmt das Zeilenende ($) im Muster nur mit dem Ende der Zielzeichenfolge überein. Wenn das letzte Zeichen ohne diese Option ein Zeilenumbruchzeichen ist, wird es ebenfalls abgeglichen. Diese Option wird ignoriert, wenn der Modifikator m gesetzt ist.

S

: Wenn ein Muster mehrmals verwendet werden soll, lohnt es sich, es zunächst zu analysieren, um den Abgleich zu beschleunigen. Wenn dieser Modifikator festgelegt ist, wird eine zusätzliche Analyse durchgeführt. Derzeit ist die Analyse eines Musters nur für nicht verankerte Muster sinnvoll, die kein einziges festes Startzeichen haben.

U

(PCRE_UNGREEDY): Machen Sie die Standardübereinstimmung von „?“ gierig.

Standardmäßig wird ein Backslash, gefolgt von einem Buchstaben ohne besondere Bedeutung, als der Buchstabe selbst behandelt.

u
(PCRE_UTF8):

Musterzeichenfolge wird als UTF-8 behandelt.

Hinweis:

Mustermodifikatoren

i – Kann übereinstimmen sowohl Groß- als auch Kleinbuchstaben

M – Behandeln Sie die Zeichenfolge als mehrere Zeilen
S – Behandeln Sie die Zeichenfolge als einzelne Zeile mit Zeilenumbrüchen als normale Zeichen. Behandeln Sie das so „.“ stimmt mit jedem Zeichen überein
– Verwenden Sie die ersetzte Zeichenfolge als Ausdruck
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich ist.
Verwandte Empfehlungen:
php

Regelmäßige Korrektur

Detaillierte Erläuterung der Verwendung von Symbolen


php

Regelmäßige Korrektur

Beispiele für die Symbolverwendung, detaillierte Erklärung
php

Regelmäßige Korrektur

Symbol /i, / is, /s , /isU usw.

Das obige ist der detaillierte Inhalt vonBeispielanalyse für die Verwendung regulärer PHP-Modifikatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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