Bande ponctuation à partir d'une chaîne dans VB.net
-
20-09-2019 - |
Question
Comment puis-je supprime tous les signes de ponctuation à partir d'une chaîne dans vb.net? Je ne veux pas vraiment faire stringname.Replace("$", "")
pour chaque bit de la ponctuation, mais il travaillerait.
Comment puis-je faire rapidement et efficacement?
Autre que le codage quelque chose qui code pour moi ....
La solution
Vous pouvez utiliser une expression régulière pour correspondre à tout ce que vous voulez supprimer:
str = Regex.Replace(str, "[^A-Za-z]+", String.Empty);
[^...]
est un ensemble négatif qui correspond à un caractère qui ne sont pas dans l'ensemble. Vous pouvez simplement mettre un caractère là que vous voulez garder.
Autres conseils
Exemple rapide à l'aide d'un match de regex positif. Il suffit de placer les caractères que vous souhaitez supprimer en elle:
Imports System.Text.RegularExpressions
Dim foo As String = "The, Quick brown fox. Jumped over the Lazy Dog!"
Console.WriteLine(Regex.Replace(foo,"[!,.\"'?]+", String.Empty))
Si vous voulez une solution non-regex, vous pouvez essayer quelque chose comme ceci:
Dim stringname As String = "^^^%%This,,,... is $$my** original(((( stri____ng."
Dim sb As New StringBuilder
Dim c As Char
For Each c In stringname
If Not (Char.IsSymbol(c) OrElse Char.IsPunctuation(c)) Then
sb.Append(c)
End If
Next
Console.WriteLine(sb.ToString)
La sortie est "This is my original string
".