Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Negli esempi riportati negli argomenti precedenti è stata illustrata soltanto la ricerca di titoli di capitoli. Un'occorrenza della stringa "Chapter" seguita da uno spazio e da un numero può costituire un titolo di capitolo effettivo oppure un riferimento incrociato a un altro capitolo. Poiché i titoli di capitoli effettivi vengono sempre riportati all'inizio di una riga, può essere utile elaborare un meccanismo per trovare solo i titoli e non i riferimenti incrociati.
Funzionamento dei punti di ancoraggio
Per eseguire questa operazione, è possibile utilizzare i punti di ancoraggio, che consentono di fissare un'espressione regolare all'inizio o alla fine di una riga, nonché di creare espressioni regolari che ricorrono all'interno, all'inizio o alla fine di una parola. Nella tabella riportata di seguito viene fornito un elenco dei punti di ancoraggio di espressioni regolari e dei relativi significati.
Carattere |
Descrizione |
|---|---|
^ |
Corrisponde alla posizione all'inizio della stringa di input. Se è stata impostata la proprietà Multiline dell'oggetto RegExp, ^ corrisponde inoltre alla posizione che segue \n o \r. |
$ |
Corrisponde alla posizione alla fine della stringa di input. Se è stata impostata la proprietà Multiline dell'oggetto RegExp, $ corrisponde inoltre alla posizione che precede \n o \r. |
\b |
Corrisponde a un inizio o a una fine di parola, ovvero alla posizione tra una parola e uno spazio. |
\B |
Corrisponde a caratteri che non costituiscono un inizio o una fine di parola. |
Non è possibile utilizzare un quantificatore con un punto di ancoraggio. Poiché non possono essere presenti più posizioni subito prima o dopo un carattere di nuova riga o un carattere di inizio o fine parola, espressioni come ^* non sono ammesse.
Per ottenere una corrispondenza con il testo all'inizio di una riga di testo, utilizzare il carattere ^ all'inizio dell'espressione regolare. Questo utilizzo di ^ non deve essere confuso con l'utilizzo all'interno di un'espressione tra parentesi quadre.
Per ottenere una corrispondenza con il testo alla fine di una riga di testo, utilizzare il carattere $ alla fine dell'espressione regolare.
Se si desidera utilizzare punti di ancoraggio per la ricerca di titoli di capitoli, la seguente espressione regolare corrisponde a un titolo di capitolo contenente non più di due cifre successive, riportato all'inizio di una riga:
/^Chapter [1-9][0-9]{0,1}/
Un titolo di capitolo effettivo non solo è riportato all'inizio di una riga, ma rappresenta anche l'unico testo contenuto nella riga. Viene inoltre riportato all'inizio della riga e alla fine della stessa riga. L'espressione riportata di seguito garantisce che la corrispondenza specificata sia costituita soltanto da capitoli e non da riferimenti incrociati. Per ottenere questo risultato viene creata un'espressione regolare in grado di ottenere una corrispondenza soltanto all'inizio e alla fine di una riga di testo.
/^Chapter [1-9][0-9]{0,1}$/
La procedura per ottenere una corrispondenza con un inizio o una fine di parola risulta leggermente diversa, ma arricchisce le espressioni regolari di una funzionalità estremamente importante. Un inizio o una fine di una parola rappresenta la posizione tra una parola e uno spazio. In tutte le altre posizioni si trovano caratteri che non costituiscono un inizio o una fine di parola. La seguente espressione corrisponde ai primi tre caratteri della parola Chapter, poiché i caratteri sono riportati dopo un inizio di parola:
/\bCha/
La posizione dell'operatore \b riveste un'importanza critica. Se si trova all'inizio di una stringa di cui si desidera ottenere una corrispondenza, questa viene ricercata all'inizio della parola. Se si trova alla fine della stringa, la corrispondenza viene ricercata alla fine della parola. La seguente espressione corrisponde ad esempio alla stringa ter nella parola "Chapter" perché viene riportata prima di una fine di parola:
/ter\b/
La seguente espressione corrisponde invece alla stringa apt in "Chapter", ma non in "aptitude":
/\Bapt/
La stringa apt non è riportata all'inizio o alla fine di parola in Chapter, mentre rappresenta un inizio di parola in aptitude. Per l'operatore \B, corrispondente ai caratteri che non costituiscono un inizio o una fine di parola, la posizione non è importante perché la corrispondenza non è relativa all'inizio o alla fine di una parola.