Permalänk
Rekordmedlem

Reg ex för att döpa om filer

Jag har försökt komma på rätt reg ex uttryck som hjälper mig att autodöpaom filer i en mapp med nån typ av script men fastnat i mitt tänkande och läsande av reg ex guider.

Filnamnet har formatet
7 siffror, _text av olika längd och utseende, _3 siffror.
Det kan tex se ut likt detta >
2017012_nu larmar jag_456
2017012_hjälp-mig-fungera-NYSS_456
2017012_hjälp-mig-fungera-NYSS men 65-77 inte just4546 nu _456
Jag vill filtrera ut textmassan i mitten för att kunna döpa om filerna så det blir typ 2017012_456 och trodde att det skulle vara enkelt att invertera funktionen av att filtrera ut siffrorna i början och slutet men så enkelt var det inte.
([0-9]{7}_) (_[0-9]{3}) ger var för sig träff på talen i början och slutet men hur gör man en "inversfunktion" så jag får träff på texten mellan siffergrupperna ?

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

Du lägger väl till ([a-zA-Z]+) mellan de två parenteserna du har ovan. Detta plockar du sen ut med \\2 i ersättningsmönstret så att säga.
Viss reservation för att jag bara skriver på telefonen nu och skriver ur minnet...

Skickades från m.sweclockers.com

Edit ([a-zA-ZåäöÅÄÖ]+) bör det va

Permalänk
Medlem

I perl räcker något som

^\d+_(.*)_\d+$

edit:

läste fel

^(\d+)_.*(_\d+)$

för att få siffror i början _ siffrorna i slutet.

Permalänk
Medlem
Skrivet av Napoleongl:

Du lägger väl till ([a-zA-Z]+) mellan de två parenteserna du har ovan. Detta plockar du sen ut med \\2 i ersättningsmönstret så att säga.
Viss reservation för att jag bara skriver på telefonen nu och skriver ur minnet...

Skickades från m.sweclockers.com

Edit ([a-zA-ZåäöÅÄÖ]+) bör det va

sista exemplet har siffror i mittendelen

Permalänk
Medlem

Du har ju väldefinierade delimiters (_), så en capture group för allt mellan dessa borde väl räcka?

/_(.*)_/

https://regex101.com/r/hakkMX/1/

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Rekordmedlem
Skrivet av LemonIllusion:

Du har ju väldefinierade delimiters (_), så en capture group för allt mellan dessa borde väl räcka?

/_(.*)_/

https://regex101.com/r/hakkMX/1/

Tach. Den var enklast att använda och verkade fungera även om det finns _ i namnet mellan siffrorna, Jag behövde bara lägga till ett _ själv för att separera siffergrupperna.
Jag ska testa vidare så att jag är övertygad om att allt funkar så jag inte skapar kaos bland filerna.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.