php – PCRE-Unicode-Zeichenattribute für reguläre Ausdrücke

伊谢尔伦
Freigeben: 2016-11-21 17:25:25
Original
1351 Leute haben es durchsucht

Seit PHP 4.4.0 und 5.1.0 werden drei zusätzliche Escape-Sequenzen verwendet, um gängige Zeichentypen abzugleichen, wenn der UTF-8-Modus ausgewählt ist. Sie sind:

p{xx}

Ein Zeichen mit Attribut xx

P{xx}

Ein Zeichen ohne Attribut xx

Jedes Zeichen verfügt über eine solche definierende Eigenschaft, die durch zwei abgekürzte Buchstaben angegeben wird. Aus Gründen der Kompatibilität mit Perl können Sie ^ nach der linken geschweiften Klammer { hinzufügen, um eine Negation anzuzeigen. Beispiel: p{^Lu} ist äquivalent zu P{Lu}.

Wenn über p oder P nur ein Buchstabe angegeben wird, umfasst es alle Eigenschaften, die mit diesem Buchstaben beginnen. In diesem Fall ist die Escape-Sequenz in der geschweiften Klammer optional.

p{L}

pL

Die Angabe der Groß- und Kleinschreibung hat keine Auswirkung auf diese Escape-Sequenzen. Beispielsweise stimmt p{Lu} immer mit Großbuchstaben überein.

Unicode-Zeichensätze werden in bestimmten Literalen definiert. Verwenden Sie einen Literalnamen, um einem Zeichen in diesen Zeichensätzen zuzuordnen. Zum Beispiel:

p{Greek}

P{Han}

Wenn es nicht im ermittelten Text vorkommt, wird es in Common konzentriert. Das

X-Escape stimmt mit einer beliebigen Anzahl von Unicode-Zeichen überein. X ist äquivalent zu (?>PMpM*)

Das heißt, es entspricht einem Zeichen ohne das „Mark“-Attribut, gefolgt von einer beliebigen Anzahl von Zeichen mit dem „Mark“-Attribut. und betrachtet diese Sequenz als eine Gruppe von Atomen (Einzelheiten siehe unten). Typischerweise sind Zeichen mit dem Attribut „Mark“ Akzente, die das vorhergehende Zeichen beeinflussen.

Die Verwendung von Unicode-Attributen zum Abgleichen von Zeichen ist nicht schnell, da PCRE eine Datenstruktur mit mehr als 15.000 Zeichen durchsuchen muss. Aus diesem Grund werden in PCRE die traditionellen Escape-Sequenzen d, w anstelle des Unicode-Attributs verwendet.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage