Proprio desidera far corrispondere ogni personaggio fino a, ma non è compreso l'ultimo periodo diSemplice Regex: abbinare tutto fino a quando l'ultimo punto
dog.jpg -> dog
abc123.jpg.jpg -> abc123.jpg
ho cercato
(.+?)\.[^\.]+$
Proprio desidera far corrispondere ogni personaggio fino a, ma non è compreso l'ultimo periodo diSemplice Regex: abbinare tutto fino a quando l'ultimo punto
dog.jpg -> dog
abc123.jpg.jpg -> abc123.jpg
ho cercato
(.+?)\.[^\.]+$
non c'è bisogno di guardare avanti qui..it aumenta solo il numero di passi – rock321987
questo ha funzionato benissimo grazie – bigdowg
Questo corrisponderà sempre due volte nella stessa posizione. – sln
questo farà il trucco
(.*)\.
Il primo gruppo catturato contiene il nome. È possibile accedere come $1
o \1
secondo la vostra lingua
questo includeva il punto per me – bigdowg
@bigdowg dove lo stai usando? mostra solo la parte corrispondente .. la parte verde (in demo) mostra la stringa vera e propria che vuoi – rock321987
Questa è una buona risposta. – sln
Le espressioni regolari sono avidi per impostazione predefinita. Ciò significa che quando un modello regex è in grado di far corrispondere più caratteri, corrisponderà a più caratteri.
Questa è una buona cosa, nel tuo caso. Tutto quello che devi fare è caratteri partita e poi un punto:
.*\.
Cioè,
. # Match "any" character
* # Do the previous thing (.) zero OR MORE times (any number of times)
\ # Escape the next character - treat it as a plain old character
. # Escaped, just means "a dot".
Quindi: essere avidi di default, corrisponde ad alcun carattere volte di più che si può (perché avida) e poi un punto letterale.
Hai avuto una domanda? SO non è qui per scrivere le tue espressioni regolari per te. – jonrsharpe
cosa per caso come 'abcd',' a.b.c.d.e'? – rock321987
inoltre, quello che vuoi è rimuovere l'estensione del file ?? perchè non usi strumenti per questo invece di REGEX ?? come basename()? – aampudia