在VB.net中从字符串中删除所有标点符号
如何在vb.net中从字符串中去除所有标点符号?我真的不想对每一位标点符号都执行在VB.net中从字符串中删除所有标点符号,vb.net,punctuation,Vb.net,Punctuation,如何在vb.net中从字符串中去除所有标点符号?我真的不想对每一位标点符号都执行stringname.Replace(“$”,”),尽管它可以工作 我如何快速有效地完成这项工作 除了为我编写代码之外……使用正正则表达式匹配的快速示例。只需将要删除的字符放入其中: Imports System.Text.RegularExpressions Dim foo As String = "The, Quick brown fox. Jumped over the
stringname.Replace(“$”,”)
,尽管它可以工作
我如何快速有效地完成这项工作
除了为我编写代码之外……使用正正则表达式匹配的快速示例。只需将要删除的字符放入其中:
Imports System.Text.RegularExpressions
Dim foo As String = "The, Quick brown fox. Jumped over the Lazy Dog!"
Console.WriteLine(Regex.Replace(foo,"[!,.\"'?]+", String.Empty))
可以使用正则表达式匹配要删除的任何内容:
str = Regex.Replace(str, "[^A-Za-z]+", String.Empty);
[^…]
是一个负数集,它匹配不在该集中的任何字符。您可以将想要保留的任何字符放在那里。如果您想要非正则表达式解决方案,您可以尝试以下方法:
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)
输出是“
这是我的原始字符串”我个人会使用正匹配,而不是负匹配。你需要使用Imports System.Text.RegularExpressionsRight,我导入系统时为什么不导入。Text lol?@Cyclone:导入不是级联。如果您导入的系统名称空间没有导入整个框架中的所有内容…对不起,我一半用于Flash,其中导入语句可以级联,另一半用于VB。我需要让整个人都习惯这两个lol……我个人会使用消极匹配,而不是积极匹配。:)成功了!我想我需要逃避我的“与”“不过,我也这么做了。我可以简单地在括号内添加更多字符,对吗?那么我该如何去掉括号呢?在C#中,我不知道VB.LOL Guffa。我的优点在于正则表达式更短,更易于修改。呃,我如何避开\n呢?我真的想去掉除空格以外的所有标点符号。