Progetto:Bot/Regex utili

Da Wikisource.

Regex per inserire i wikilink nell'indice di un libro, nella versione con testo a fronte[modifica]

La sostituzione si opera in più tempi.

Modalità 1[modifica]

CERCA
  1. [^|]p. ([0-9][0-9][0-9])
  2. [^|]p. ([0-9][0-9])
  3. [^|]p. ([0-9])
SOSTITUISCI
  1. [[Pagina:NOMEPAGINA - \1.jpg|p. \1]]
  2. [[Pagina:NOMEPAGINA - 0\1.jpg|p. \1]]
  3. [[Pagina:NOMEPAGINA - 00\1.jpg|p. \1]]

Modalità 2[modifica]

Primo passo

Cerca

[^|]p. ([0-9][0-9][0-9])

sostituisci

[[Pagina:NOMEPAGINA - \1.jpg|p. \1]]
Secondo passo

Cerca

[^|]p. ([0-9][0-9])

sostituisci

[[Pagina:NOMEPAGINA - 0\1.jpg|p. \1]]
Terzo passo

Cerca

[^|]p. ([0-9])

sostituisci

[[Pagina:NOMEPAGINA - 00\1.jpg|p. \1]]

Note[modifica]

Quando si vuole linkare la nota presente in un testo (vedasi per esempio questo caso) consiglio di cercare una stringa di puro testo che indica la presenza della nota. Nel nostro esempio sarà:

]] n.

A questo punto, a mano, copio-incollo la stringa:

#_note-0

qui:

.........jpg<--INCOLLO QUI-->|p...........


Autore Citato[modifica]

La trasformazione deve avvenire da:

[[Autore:Dante Alighieri|Dante]]

a

{{AutoreCitato|Dante Alighieri|Dante}}

e da:

[[Autore:Dante Alighieri|Dante Alighieri]]

a

{{AutoreCitato|Dante Alighieri}}

Cerco:

\[\[Autore:([^|]*)\|([^|]*)\]\]

e sostituisco:

{{AutoreCitato|$1|$2}}

NOTA: così va benissimo nel primo caso, nel secondo provoca una ridondanza trascurabile: l'efficacia è la medesima, ma e volessi fare il pignolo dovrei avere un bot intelligente che "leggesse" e sapesse dirmi se $1 == $2.

\[\[Autore:([^|]*)\|([^|]*)\]\] -->  {{AutoreCitato|$1|$2}}


Testo Citato[modifica]

La trasformazione deve avvenire da:

[[Divina Commedia|Commedia]]

a

{{TestoCitato|Divina Commedia|Commedia}}

e da:

[[Divina Commedia]]

a

{{TestoCitato|Divina Commedia}}

Cerco:

\[\[([^|]*)\|([^|]*)\]\]

e sostituisco:

{{TestoCitato|$1|$2}}

NOTA: La questione è più complicata che per il template {{AutoreCitato}}. Qui si tratta di puri wikilink, e la regex dovrà distinguere fra questi e i vari interlink, link ad autori ecc.

\[\[Autore:([^|]*)\|([^|]*)\]\] -->  {{AutoreCitato|$1|$2}}


Testo[modifica]

Regex per trasformare il wikilink dell'opera (nella pagina autore) con il template {{Testo}}.

''\[\[([^|]*)\]\]'' --> {{Testo|$1}}

Liste di matematici[modifica]

Ho apportato un'ulteriore modifica alle liste. Se lasciamo tutti i link rossi non possiamo controllare la pagina Speciale:PagineRichieste sulla quale sto facendo lavorare il bot. Dato che l'inserimento degli autori sarà progressivo ti propongo la soluzione adottata per la lettera A della lista Progetto:Matematica/Liste/Matematici italiani A-C.

Come vedi ho nascosto i collegamenti così quando vi serve di creare una pagina vi basterà solo cancellare da sinistra del secondo asterisco

Ad esempio:

* '''Abbati Marescotti, Pietro''' <!-- * [[Autore:Pietro Abbati Marescotti|Abbati Marescotti, Pietro]] --> (1768 - 1842)

cancelli da sinistra del secondo asterisco e il collegamento torna come prima

* [[Autore:Pietro Abbati Marescotti|Abbati Marescotti, Pietro]] --> (1768 - 1842)

La stringa regex per sistemare i collegamenti è questa:

Cerca

\[\[(.*?)\|(.*?)\]\]

Sostituisci con

'''$2''' <!-- * [[$1|$2]] -->