Sto cercando di creare un'espressione regolare che rilevi qualsiasi carattere che Windows non accetta come parte di un nome file (sono gli stessi per altri sistemi operativi? Non lo so, ad essere onesto).Regex per sostituire i caratteri che Windows non accetta in un nome file
Questi simboli sono:
\/: * ? " |
Comunque, questo è quello che ho: [\\/:*?\"<>|]
Il tester sopra a http://gskinner.com/RegExr/ mostra questo per funzionare. Per la stringa Allo*ha
, il simbolo *
si illumina, segnalando che è stato trovato. Devo inserire Allo**ha
tuttavia, solo il primo *
si illuminerà. Quindi penso di aver bisogno di modificare questo regex per trovare tutte le apparenze dei personaggi citati, ma non ne sono sicuro.
Vedete, in Java, ho la fortuna di avere la funzione String.replaceAll(String regex, String replacement). La descrizione dice:
Sostituisce ogni sottostringa di questa stringa che corrisponde all'espressione regolare data con la sostituzione specificata.
Quindi, in altre parole, anche se la regex trova solo il primo e quindi interrompe la ricerca, questa funzione li troverà ancora tutti.
Per esempio: String.replaceAll("[\\/:*?\"<>|]","")
Tuttavia, non mi sento come posso correre questo rischio. Quindi qualcuno sa come posso estendere questo?
-1 rendere questo un qeustion e dirci la lingua o il contesto che si sta utilizzando e io ti darò il tuo voto schiena – ojblass
Vorrei anche sapere che lingua il tuo utilizzo. – Kredns
Tieni presente che, poiché la tua espressione regolare ha il formato di una stringa letterale Java, devi eseguire il doppio escape dei backslash: "[\\\\ /: *? \" <> |] ". Il modo in cui l'hai avuto, stavi solo sfuggendo alla barra diretta (che non è necessaria, ma non è neanche un errore) –