- Code: Select all
<!--#set var="keyvaluepair" value="key1=value1" -->
<!--#if expr="v('keyvaluepair')=~/key1=([a-zA-Z0-9]*)/" -->
<!--#set var="match" value="$0" -->
<!--#set var="value" value="$1" -->
<!--#endif -->
<!--#echo var="match" -->
<!--#echo var="value" -->
Laut Apache Doku finden sich die regex Ergebnisse, die backrefs, in den Variablen $0 bis $9 , wobei in $0 der Hauptfund ist, in $1 der Fund in capturing group 1, $2 group 2, etc.
Eine Capturing Group wird mittels runder Klammern markiert, also sollte $1 den Teil ([a-zA-Z0-9]*) des regulären Ausdrucks enthalten, der auf "key1=" folgt, also nur den Wert "value1".
$1 ist aber leer.
Ist das ein Apache SSI Bug?
Ich kann mir helfen, indem ich den Fund weiter auseinander nehme:
- Code: Select all
<!--#if expr="v('match')=~/=([a-zA-Z0-9]*)/" -->
<!--#set var="secondmatch" value="$0" -->
<!--#endif -->
<!--#if expr="v('secondmatch')=~/([a-zA-Z0-9]*)/" -->
<!--#set var="finalmatch" value="$0" -->
<!--#endif -->
So wird nach und nach der vordere Teil abgestreift. Elegant ist das allerdings nicht gerade.
Olaf.