- Offizieller Beitrag
Hi,
da ich bisher für Backreferenzen der Einfachheit halber '\1' oder '$1' verwendet habe, ist mir das Problem nie aufgefallen.
Backreferenzen lassen sich ja auch absolut und relativ (\g1 \g-1) oder mit Namen (\k<name>) referenzieren.
Aber - das ist nur möglich mit StringRegExp. Bei der Replace-Funktion werden diese Schreibweisen der Backreferenz ignoriert. In der Hilfe habe ich aber keinen Hinweis darauf gefunden.
Hat jemand eine Erklärung dafür?
AutoIt
; <named groups>
; funktioniert mit StringRegExp
; ist Datum in TT, MM, JJ gleich? (z.B. "2011/11/11"):
$patt = "\d{2}(?<double>\d{2})/\k<double>/\k<double>"
ConsoleWrite(StringRegExp('2011/11/11', $patt) & @CRLF)
; schlägt fehl bei StringRegExpReplace
; engl. Datum in deutsche Form bringen:
$patt = "(?<year>\d{4})/(?<month>\d{2})/(?<day>\d{2})"
ConsoleWrite(StringRegExpReplace('2015/06/08', $patt, '\k<day>.\k<month>.\k<year>') & @CRLF)
Alles anzeigen