/ / Sostituire caratteri e numeri non alfabetici con altri caratteri speciali - regex, vb.net, replace

Sostituendo caratteri e numeri non alfabetici con altri caratteri speciali - regex, vb.net, sostituisci

Sto usando il seguente codice per eliminare qualsiasi cosa diverso da caratteri alfabetici, numeri, punto interrogativo, punto esclamativo, periodi, parentesi, virgole & trattino:

MsgBox(System.Text.RegularExpressions.Regex.Replace("hello to you"s! My # is (442) 523-5584. @$%^*<>{}[]|/?,+-=:;`~", "[^A-Za-z0-9]", ""))

Mi viene in mente questo: hellotoyousMy # is4425235584

Dovrebbe leggere così: ciao a te! Il mio # è (442) 523-5584.?,

risposte:

1 per risposta № 1

Aggiungi semplicemente tutti i personaggi alla tua classe di caratteri negata (prendi nota del carattere dello spazio!):

MsgBox(System.Text.RegularExpressions.Regex.Replace("hello to you"s! My # is (442) 523-5584. @$%^*<>{}[]|/?,+-=:;`~", "[^A-Za-z0-9 ?!.(),#-]+", ""))

(Ho anche aggiunto una ripetizione + alla tua espressione regolare, in modo che possa sostituire i caratteri non consentiti consecutivi in ​​una volta sola)


1 per risposta № 2

Aggiungi uno spazio e altri simboli nella regex:

MsgBox(System.Text.RegularExpressions.Regex.Replace("hello to you"s! My # is (442) 523-5584. @$%^*<>{}[]|/?,+-=:;`~", "[^A-Za-z0-9 ()!.,-?]", ""))

1 per risposta № 3
Regex.Replace("your text", "[^A-Za-z0-9 ?!.(),-]+", "")

[^ A-Za-z0-9?!. (), -] + catturerà tutti i caratteri indesiderati uno dopo l'altro e li sostituirà con ""