Progetto:Bot/Regex utili

< Progetto:Bot(Reindirizzamento da Utente:Aubrey/Regex)

Regex per inserire i wikilink nell'indice di un libro, nella versione con testo a fronteModifica

La sostituzione si opera in più tempi.

Modalità 1Modifica

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à 2Modifica

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]]

NoteModifica

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 CitatoModifica

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 CitatoModifica

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}}


TestoModifica

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

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

Liste di matematiciModifica

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]] -->