Ottenere il codice RegEx per la modifica del nome file


2

Buona giornata

Aiutate a trovare il RegEx giusto o altro codice per cambiare il nome del file. Molti file di sottotitoli hanno un carattere non necessario. Devo rinominare nel mio formato di aspettativa. Ecco l'esempio

Nome file non elaborato

Blue Bloods - 05x05 - Loose Lips.DIMENSION.English.HI.C.updated.Addic7ed.com

Nome file desiderato

Blue Bloods 5x05 Labbra sciolte

Ciò significa che vuoi rimuovere il personaggio

  • 0 (barra spaziatrice + 0)

  • (- + barra spaziatrice)

.DIMENSION.English.HI.C.updated.Addic7ed.com; rimuovere il testo qualsiasi cosa dopo la prima.

Aiutatemi ad avere il RegEx o qualsiasi codice di comando per questa operazione in modo che io possa usarlo usando autohotkey o qualsiasi codice di comando. Grazie in anticipo per l'aiuto


La tua descrizione è errata: dà Blue Bloods -5x05 Loose Lips, o Blue Bloods5x05 Loose Lipsse fatto in ordine inverso.
AFH,

Penso che Rhinemine significhi che vuole rimuovere "0" quando è preceduto dallo spazio (cioè sostituire lo spazio + "0" con lo spazio).
G-Man,

Non uso Windows o AutoHotKey, ma se riesci a ottenere qualsiasi versione di sed per il tuo sistema, è perfetto per ripulire fastidiosi dati di testo come questo. Ha un supporto regex molto potente. Puoi anche configurarlo con testi di esempio costanti fino a quando non riesci a far funzionare correttamente il tuo regex. So che Cygwin fornisce tutti gli strumenti come questo, ma probabilmente puoi trovare anche una versione autonoma per Windows. thoughtasylum.com/blog/2011/9/30/using-sed-on-windows.html
Joe

Risposte:


1

Leggendo la tua domanda suppongo che sia il tuo formato generico

<strictly-alphanumeric string of arbitrary length greater 0> - <number of at least 1 digit>x<number of at least 1 digit> - <strictly-alphanumeric string of arbitrary length greater zero>.<random sequence>

Questo può essere risolto con il seguente Regex:

^([\w ]+) - 0*([1-9]+\d*)x(\d+) - ([\w ]+)\..*$

il primo gruppo conterrà "Blue Bloods", il secondo conterrà "5", il terzo conterrà "05" e il quarto conterrà "Lose Lips".

Per assemblarlo nella sintassi corretta, sostituire con

\1 \2x\3 \4

Questo è stato testato in notepad ++ con la tua stringa di esempio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.