Wikipedia:AutoWikiBrowser/Espressioni regolari
definizioni Espressioni Regolari
modificaEspressioni regolari | |
---|---|
Ancore | |
^ | Inizio della stringa |
\A | Inizio della stringa |
$ | Fine della stringa o fine pagina se usato da solo |
\Z | Fine della stringa |
\b | Delimitatore di parola |
\B | Non delimitatore di parola |
\< | Inizio della parola |
\> | Fine della parola |
Classi di caratteri | |
\c | Carattere di controllo |
\s | carattere spazio |
\S | Carattere non spazio |
\d | Numero |
\D | Non numero |
\w | Parola |
\W | Non parola |
\x | Numero esadecimale |
\O | Numero ottale |
Quantificatori | |
* | 0 o più |
+ | 1 o più |
? | 0 o 1 |
{3} | Esattamente 3 |
{3,} | 3 o più |
{2,4} | 2, 3 o 4 |
Caratteri di escape | |
\ | Carattere di escape |
Metacaratteri (devono avere l'escape) | |
Metacarattere | Metacarattere con escape |
^ | \^ |
$ | \$ |
( | \( |
) | \) |
< | \< |
. | \. |
* | \* |
+ | \+ |
? | \? |
[ | \[ |
] | \] |
{ | \{ |
\ | \\ |
| | \| |
> | \> |
Caratteri speciali | |
\n | Nuova riga |
Gruppi e intervalli Nota: gli intervalli sono inclusivi | |
. | Ogni carattere eccetto la nuova riga (\n) |
(abc|xyz) | "abc" o "xyz" (in sequenza) |
( ) | Gruppo di cattura (cattura tutto tra le parentesi tonde "(" ")") |
[def] | Imposta "d" o "e" o "f" |
[^abc] | Imposta tutto fuorché "a" o "b" o "c" |
[a-q] | Tutte le lettere tra "a" e "q" |
[A-Q] | Tutte le lettere maiuscole tra "A" e "Q" |
[0-7] | Tutti i numeri tra "0" e "7" |
Sostituzione delle stringhe | |
$1 - risulta "luca" | (luca) (marco) (maria) |
$2 - risulta "marco" | (luca) (marco) (maria) |
$3 - risulta "maria" | (luca) (marco) (maria) |
Esempi di modelli | |
La regex: | Corrisponde a: |
([A-Za-z0-9-]+) | Lettere, numeri e trattini |
(\d{1,2}\/\d{1,2}\/\d{4}) | Data nel formato "3/10/2011" o "03/10/2011" |
\[\[\d{4}\]\] | 4 numeri in un wikilink ([[2011]]) |
Greed vs lazy
modificaI quantificatori ?
, *
e +
per default sono greed, ovvero tendono a catturare più caratteri possibili. Per invertire questo comportamento (e trasformarli in lazy), bisogna farli seguire da un punto interrogativo (??
, *?
, +?
).
- Esempio
Presa la seguente stringa:
[[Lorem ipsum]] dolor sit amet, [[consectetur adipisicing]] elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- L'espressione
\[\[.*\]\]
catturerà[[Lorem ipsum]] dolor sit amet, [[consectetur adipisicing]]
- L'espressione
\[\[.*?\]\]
catturerà[[Lorem ipsum]]
e[[consectetur adipisicing]]
Nota bene: (\w)(<ref[^<>]*>.*?</ref>)([,.:;])
catturerà anche più di un ref, se le condizioni (preceduto da una lettera e seguito da un carattere di punuteggiatura) sono rispettate:
sed do eiusmod tempor<ref>reference</ref> incididunt ut <ref>reference 2</ref>. labore
Sottogruppi ricorsivi
modifica\[\[(Image:[^][|]+)\|([^][]*(\[\[[^][]+\]\][^][]*)*)\]\]
Esempi di espressioni regolari
modificaEsempi di espressioni regolari | ||
---|---|---|
Ricerca e rimozione del template Bandiera | ||
Find: | \{\{\s*?[Bb]andiera\s*?\|.*?\}\} | |
Replace With: | (niente) | |
Esempio di testo da ricercare: | {{bandiera|USA}} [[United States]] | |
Risultato: | [[United States]] | |
Commenti: | ... | |
Ricerca di uno qualsiasi dei tre parametri del template e sostituzione di un valore con un nuovo valore | ||
Find: | ([\|]\s*)(occupation|spouse|notableworks)(\s*=\s*)([^\|\}]+)(?=\s*(\||}})) | |
Replace With: | $1$2$3new value$5 | |
Esempio di testo da ricercare: | {{infobox person|name=Steveo|occupation=dancer|nationality=The moon}} | |
Risultato: | {{infobox person|name=Steveo|occupation=new value|nationality=The moon}} | |
Commenti: | $1 $2 $3 and $5 servono per preservare gli spazi. Una versione ridotta può essere utilizzata per rinominare i parametri del template. Ulteriori elaborazioni potrebbero essere eseguite su $4. |