Condividi tramite


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, \044 significa sempre '$'.

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, \9 rappresenta sempre un backreference 9, anche se non esiste l'acquisizione 9. Se l'acquisizione non esiste, un'eccezione di sintassi viene generata dal parser dell'espressione regolare.

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 \3000, se l'acquisizione 300 esiste, l'espressione viene interpretata come un backreference 300; se l'acquisizione 300 non esiste, viene interpretata come ottale 300 seguito da 0.

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.

Vedere anche

Altre risorse

Elementi del linguaggio di espressioni regolari