Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.net中从字符串中删除所有标点符号_Vb.net_Punctuation - Fatal编程技术网

在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

如何在vb.net中从字符串中去除所有标点符号?我真的不想对每一位标点符号都执行
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呢?我真的想去掉除空格以外的所有标点符号。