ECMAScript- oder kanonisches Vergleichsverhalten
Das Verhalten von regulären ECMAScript-Ausdrücken weicht in drei Punkten von dem von kanonischen regulären Ausdrücken ab:
Zeichenklassen werden in übereinstimmenden Ausdrücken unterschiedlich angegeben. Kanonische reguläre Ausdrücke unterstützen standardmäßig Unicode-Zeichenkategorien. ECMAScript unterstützt Unicode nicht.
Eine Aufzeichnungsklasse für einen regulären Ausdruck mit einem Rückverweis auf sich selbst muss mit jeder Aufzeichnungsiteration aktualisiert werden.
Zweideutigkeiten zwischen Oktalescapezeichen und Rückverweisen werden unterschiedlich behandelt.
Die folgende Tabelle fasst die Unterschiede zwischen der Oktal- und der Rückverweisinterpretation durch kanonische reguläre Ausdrücke und reguläre ECMAScript-Ausdrücke zusammen.
Verhalten von kanonischen regulären Ausdrücken | Verhalten von regulären ECMAScript-Ausdrücken |
---|---|
Wenn \ von 0 und dann von 0 bis 2 Oktalziffern gefolgt wird, wird es als Oktalzahl interpretiert. Beispiel: |
Gleiches Verhalten. |
Wenn \ von einer Ziffer zwischen 1 und 9 und dann von keinen weiteren Dezimalziffern gefolgt wird, wird es als Rückverweis interpretiert. Beispiel: |
Wenn eine Aufzeichnung einer einzigen Dezimalziffer vorhanden ist, gilt es als Rückverweis auf diese Ziffer. Andernfalls wird es als Literal interpretiert. |
Wenn \ von einer Ziffer zwischen 1 und 9 und dann von weiteren Dezimalziffern gefolgt wird, werden die Ziffern als Dezimalwert interpretiert. Falls diese Aufzeichnung vorhanden ist, wird der Ausdruck als Rückverweis interpretiert. Ansonsten werden die vorangestellten Oktalziffern bis zu Oktahlzahl 377 interpretiert. Das bedeutet, dass nur die niedrigen 8 Bits des Werts berücksichtigt werden. Die übrigen Ziffern werden als Literale interpretiert. Beispiel: Wenn im Ausdruck |
Wenn \ von einer Ziffer zwischen 1 und 9 und dann von weiteren Dezimalziffern gefolgt wird, wird es als Rückverweis interpretiert, indem so viele Ziffern wie möglich in einen Dezimalwert konvertiert werden, der auf eine Aufzeichnung verweisen kann. Wenn keine Ziffern konvertiert werden können, wird der Ausdruck als Oktalzahl unter Verwendung der ersten Oktalziffern bis zu Oktalzahl 377 interpretiert, und die restlichen Ziffern werden als Literale interpretiert. |