【问题标题】:Remove special characters from a string从字符串中删除特殊字符
【发布时间】:2011-04-11 16:33:20
【问题描述】:

这些是有效字符:

a-z
A-Z
0-9
-
/ 

如何从字符串中删除所有其他字符?

【问题讨论】:

  • 哪些字符不特殊?您是否希望清理后的字符串仅包含 -/ 还是要保留其他字符?
  • a-zA-Z0-9 和 -,/ 其余都不需要,但主要是现在我需要使用 vb.net 删除 crlf,cr,lf

标签: vb.net string newline


【解决方案1】:
Dim cleanString As String = Regex.Replace(yourString, "[^A-Za-z0-9\-/]", "")

【讨论】:

  • 很少支持请求.. 如果我需要从中排除特殊字符。不是特殊字符,比如说如果我不想替换空格和 # 符号..我该如何修改这个..
  • @sforsandeep:只需将它们添加到组中,例如:[^A-Za-z0-9\-/#\s] 或类似名称。
【解决方案2】:

使用正则表达式或 Char 类函数,如 IsControl()、IsDigit() 等。在此处获取这些函数的列表:http://msdn.microsoft.com/en-us/library/system.char_members.aspx

这是一个正则表达式示例:

(在使用 RegEx 之前导入)

Imports System.Text.RegularExpressions

在你的函数中,写下这个

Regex.Replace(strIn, "[^\w\\-]", "")

此语句将替换任何不是单词、\ 或 - 的字符。例如aa-b@c 将变为 aa-bc。

【讨论】:

  • +1 OP 可能也希望保留空格 - 尽管可能不是制表符 (?),而是 Regex.Replace(strIn, "[^\w\\- ]", "")
  • 当心! \w 类不仅匹配字母数字。例如,您的正则表达式不会正确清除 "a_string_containing_underscores"。 (此外,OP 希望允许使用正斜杠,而不是反斜杠。)
  • 嗯。斜线应该不同。
【解决方案3】:
Dim txt As String
txt = Regex.Replace(txt, "[^a-zA-Z 0-9-/-]", "")

【讨论】:

  • 对正则表达式的解释将有助于您回答。
【解决方案4】:
Function RemoveCharacter(ByVal stringToCleanUp)
    Dim characterToRemove As String = ""
        characterToRemove = Chr(34) + "#$%&'()*+,-./\~"
        Dim firstThree As Char() = characterToRemove.Take(16).ToArray()
        For index = 1 To firstThree.Length - 1
            stringToCleanUp = stringToCleanUp.ToString.Replace(firstThree(index), "")
        Next
        Return stringToCleanUp
End Function

【讨论】:

  • String.Replace("char", "")?
猜你喜欢
  • 2016-01-23
  • 2019-11-09
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多