ECMAScript e il comportamento canonico di corrispondenza
Il comportamento di ECMAScript e quello di espressioni regolari canoniche differiscono in tre aspetti:
Le classi di caratteri vengono specificate in modo diverso nelle espressioni corrispondenti. Per impostazione predefinita le espressioni regolari canoniche supportano le categorie di caratteri Unicode. ECMAScript non supporta Unicode.
È necessario aggiornare una classe di acquisizione di espressioni regolari con un backreference riferito a sé stessa ogni volta che eseguita un'iterazione dell'acquisizione.
Le ambiguità tra caratteri di escape ottali e backreference vengono gestite in modo diverso.
Nella tabella riportata di seguito vengono indicate le differenze tra l'interpretazione ottale e quella dei backreference nelle espressioni regolari canoniche e di ECMAScript
Comportamento delle espressioni regolari canoniche | Comportamento di ECMAScript |
---|---|
Se il carattere \ è seguito da 0, quindi da cifre ottali comprese tra 0 e 2, viene interpretato come un ottale. Ad esempio, |
Stesso comportamento. |
Se il carattere \ è seguito da una cifra compresa tra 1 e 9, non seguita da alcuna ulteriore cifra decimale, viene interpretato come un backreference. Ad esempio, |
Se esiste l'acquisizione di una singola cifra decimale, il carattere viene considerato un backreference di tale cifra Altrimenti il carattere viene interpretato come un valore letterale. |
Se il carattere \ è seguito da una cifra compresa tra 1 e 9, quindi da ulteriori cifre decimali, le cifre vengono interpretate come un valore decimale. Se tale acquisizione esiste, l'espressione viene interpretata come un backreference. In caso contrario, interpretare le cifre ottali iniziali fino all'ottale 377, ovvero considerare solo gli 8 bit inferiori del valore. Interpretare le altre cifre come valori letterali. Ad esempio, nel caso di |
Se il carattere \ è seguito da una cifra compresa tra 1 e 9, quindi da ulteriori cifre decimali, viene interpretato come un backreference applicando al numero più alto possibile di cifre la conversione in un valore decimale che può essere riferito a un'acquisizione. Se non è possibile convertire alcuna cifra, il carattere viene interpretato come un ottale che utilizza le prime cifre ottali fino all'ottale 377. Le cifre restanti vengono interpretate come valori letterali. |