Heim >Backend-Entwicklung >PHP-Tutorial >Regulärer PHP-Ausdruck in Aktion: Passende XML-Dokumente

Regulärer PHP-Ausdruck in Aktion: Passende XML-Dokumente

王林
王林Original
2023-06-22 10:39:12934Durchsuche

Mit der Entwicklung des Internets werden XML-Dokumente immer häufiger verwendet, daher müssen wir verstehen, wie man reguläre Ausdrücke verwendet, um Inhalte in XML-Dokumenten abzugleichen. Dieser Artikel führt Sie in die praktische Anwendung regulärer PHP-Ausdrücke ein, um Entwicklern dabei zu helfen, XML-Dokumente besser zu verarbeiten und zu analysieren.

Was ist ein XML-Dokument?

XML (Extensible Markup Language) ist eine Auszeichnungssprache, die zum Speichern und Übertragen von Daten verwendet wird. XML-Dokumente bestehen aus Tags, Attributen und Inhalten. Tags sind Beschreibungen zur Identifizierung von Daten, Attribute sind einige spezielle Informationen in Tags und Inhalt sind die durch Tags beschriebenen Daten.

Zum Beispiel:

<book genre="mystery">
   <title>The Hound of the Baskervilles</title>
   <author>Arthur Conan Doyle</author>
   <price>5.99</price>
</book>

Hier ist book das Tag, genre das Attribut und The Hound of the Baskervilles der Inhalt. XML-Dokumente können beliebig viele Tags, Attribute und Inhalte enthalten. book是标签,genre是属性,The Hound of the Baskervilles是内容。XML文档中可以包含任意数量的标签、属性和内容。

如何使用PHP正则表达式匹配XML文档?

在PHP中,可以使用preg_match()函数来匹配XML文档。该函数需要三个参数:正则表达式、要匹配的字符串和一个可选的数组,用于存储匹配结果。

下面是一个例子,该例子演示了如何使用正则表达式来匹配XML文档中的标签:

$xml = '<book genre="mystery">
           <title>The Hound of the Baskervilles</title>
           <author>Arthur Conan Doyle</author>
           <price>5.99</price>
        </book>';

$pattern = '/<([a-zA-Z0-9]+)>/';

preg_match($pattern, $xml, $matches);

print_r($matches);

输出结果如下:

Array
(
    [0] => <book>
    [1] => book
)

这里的正则表达式/9e57713c5d37d2d6d4d698166f96244f/可以匹配XML文档中的标签。([a-zA-Z0-9]+)表示匹配一个或多个大小写字母和数字字符。637dade88b2e55fa23a9dd8b003912dc表示标签的开始和结束。

在匹配过程中,preg_match()函数会搜索字符串中符合正则表达式的子串,并将匹配的结果存储在$matches数组中。$matches[0]表示整个符合正则表达式的子串,$matches[1]表示正则表达式中第一个括号内的子串。

下面是一些其他常用的正则表达式:

匹配属性:

$pattern = '/([a-zA-Z]+)="([^"]+)"/';

preg_match($pattern, $xml, $matches);

print_r($matches);

输出结果如下:

Array
(
    [0] => genre="mystery"
    [1] => genre
    [2] => mystery
)

这里的正则表达式/([a-zA-Z]+)="([^"]+)"/可以匹配XML文档中的属性。([a-zA-Z]+)表示匹配一个或多个大小写字母,="表示属性的开始,([^"]+)表示匹配除双引号之外的任意字符,"表示属性的结束。

匹配内容:

$pattern = '/<title>([^<]+)</title>/';

preg_match($pattern, $xml, $matches);

print_r($matches);

输出结果如下:

Array
(
    [0] => <title>The Hound of the Baskervilles</title>
    [1] => The Hound of the Baskervilles
)

这里的正则表达式/b2386ffb911b14667cb8f0f91ea547a7([^5fdde8e76f2e6499112bdf9087bded19/可以匹配XML文档中b2386ffb911b14667cb8f0f91ea547a7标签的内容。([^00d9d8fa7dc1827d67a48c8f554d6f31表示匹配6e916e0f7d1e588d4f442bf645aedb2f

Wie ordne ich XML-Dokumente mit regulären PHP-Ausdrücken zu?

In PHP können Sie die Funktion preg_match() verwenden, um XML-Dokumente abzugleichen. Diese Funktion benötigt drei Parameter: den regulären Ausdruck, die abzugleichende Zeichenfolge und ein optionales Array zum Speichern der Abgleichsergebnisse.

Hier ist ein Beispiel, das zeigt, wie reguläre Ausdrücke zum Abgleichen von Tags in XML-Dokumenten verwendet werden: 🎜rrreee🎜Die Ausgabe lautet wie folgt: 🎜rrreee🎜Hier ist der reguläre Ausdruck /b498e459bba663a3ea133e6f1b56f36f/ kann Tags in XML-Dokumenten abgleichen. ([a-zA-Z0-9]+) bedeutet, dass ein oder mehrere Groß- und Kleinbuchstaben sowie numerische Zeichen übereinstimmen. 5f3c272a9991e01b260e5ef1e3b47fbe stellen den Anfang und das Ende von Tags dar. 🎜🎜Während des Abgleichvorgangs sucht die Funktion preg_match() nach Teilzeichenfolgen, die mit dem regulären Ausdruck in der Zeichenfolge übereinstimmen, und speichert die übereinstimmenden Ergebnisse im Array $matches. $matches[0] stellt die gesamte Teilzeichenfolge dar, die mit dem regulären Ausdruck übereinstimmt, und $matches[1] stellt die Teilzeichenfolge innerhalb der ersten Klammer im regulären Ausdruck dar. 🎜🎜Hier sind einige andere häufig verwendete reguläre Ausdrücke: 🎜🎜Übereinstimmende Attribute: 🎜rrreee🎜Die Ausgabe lautet wie folgt: 🎜rrreee🎜Der reguläre Ausdruck hier /([a-zA-Z]+)="([ ^"]+)"/ kann Attribute in XML-Dokumenten abgleichen. ([a-zA-Z]+) bedeutet, dass ein oder mehrere Groß- und Kleinbuchstaben übereinstimmen, = " stellt den Anfang des Attributs dar, ([^"]+) stellt die Übereinstimmung aller Zeichen außer doppelten Anführungszeichen dar und " stellt das Ende des Attributs dar. 🎜🎜Übereinstimmender Inhalt: 🎜rrreee🎜Das Ausgabeergebnis lautet wie folgt: 🎜rrreee🎜Der reguläre Ausdruck hier /b2386ffb911b14667cb8f0f91ea547a7([^5fdde8e76f2e6499112bdf9087bded19/ kann übereinstimmen XML-Dokumente Der Inhalt des b2386ffb911b14667cb8f0f91ea547a7-Tags. ([^<]+) bedeutet die Übereinstimmung mit jedem Zeichen außer dem Kleiner-als-Zeichen, 6e916e0f7d1e588d4f442bf645aedb2f bedeutet die Übereinstimmung mit 6e916e0f7d1e588d4f442bf645aedb2f Das Ende des Code>-Tags. 🎜🎜Zusammenfassung🎜🎜 Reguläre PHP-Ausdrücke sind sehr nützliche Werkzeuge bei der Verarbeitung von XML-Dokumenten. Durch die Verwendung regulärer Ausdrücke können wir Daten in XML-Dokumenten problemlos abgleichen, extrahieren und verarbeiten. Allerdings ist zu beachten, dass reguläre Ausdrücke nicht sehr effizient sind. Beim Umgang mit großen XML-Dokumenten wird empfohlen, einen speziellen XML-Parser zur Verarbeitung der Daten zu verwenden. 🎜

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck in Aktion: Passende XML-Dokumente. 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