Wikipedia:AutoWikiBrowser/Espressioni regolari

AutoWikiBrowser

Manuale · Database scanner · Trova e sostituisci · Espressioni regolari · Modifiche generiche

Questo manuale è redatto indipendentemente dal team di sviluppo di AWB.
Può contenere informazioni non aggiornate all'ultima versione di AWB.
Sentiti libero di modificare, aggiungere o cancellare le informazioni in esso contenute al fine di migliorarne la qualità.


definizioni Espressioni Regolari

modifica
Espressioni 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

modifica

I 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

modifica
Esempi 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.