XPath 3.0, XPath 2.0, XPath 1.0 / XPath-Funktionen / Stringfunktionen / XPath: matches

XPath: matches

XPath: matches

➪ Die XPath-Funktion matches prüft, ob ein Item einem regulären Ausdruck entspricht.

Sehr brauchbar ist die Möglichkeit, ein Pattern vorzugeben, um auf diese Weise die infrage kommenden Nodes auszufiltern. In dem folgenden XPath-Statement werden alle Mensch-Nodes mithilfe der matches-Funktion gefiltert, deren Childnode vorname dem '[A-Z]{1}[a-z]{1,19}' entsprechen. Die Funktion konvertiert dann alle diese Namen in Großbuchstaben.

Allgemeine Informationen zu dem Thema siehe .


<xsl:for-each 
     select="//Mensch[matches(vorname, 
            '[A-Z]{1}[a-z]{1,19}')]">
  <Vorname>
  <xsl:value-of 
     select="upper-case(vorname)"/>
  </Vorname>
</xsl:for-each>

Der Output lautet wie erwartet:


<Vorname>HUGO</Vorname>
<Vorname>NICOLE</Vorname>
<Vorname>STEFAN</Vorname>
<Vorname>STEFAN</Vorname>
<Vorname>SIGGI</Vorname>
<Vorname>HEINI</Vorname>
<Vorname>RUDI</Vorname>
<Vorname>KARL</Vorname>
<Vorname>SIMONE</Vorname>
<Vorname>HORST</Vorname>
<Vorname>WERNER</Vorname>
<Vorname>LUDWIG</Vorname>
<Vorname>WILLI</Vorname>
<Vorname>RITA</Vorname>
<Vorname>SUSI</Vorname>
<Vorname>LOTTE</Vorname>
<Vorname>BETTY</Vorname>
<Vorname>MARTIN</Vorname>
<Vorname>LIANE</Vorname>

Flags

Wie in und , können Sie auch bei matches mit Flags arbeiten.

s arbeitet im Single-Line-Modus: Das Pattern . berücksichtigt alle Zeichen ohne "newline" (#x0A) und ohne Carriage-return (#x0D).
m arbeitet im Multi-Line-Modus.
i ignoriert Case-sensitive.
x Whitespaces im regulären Ausdruck werden entfernt.
q Spezialzeichen in den regulären Ausdrücken werden als normale Zeichen betrachtet.

Zu diesem Aspekt siehe auch .

wg / 5. April 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/matches.html