【发布时间】:2011-04-11 16:33:20
【问题描述】:
这些是有效字符:
a-z
A-Z
0-9
-
/
如何从字符串中删除所有其他字符?
【问题讨论】:
-
哪些字符不特殊?您是否希望清理后的字符串仅包含
-和/还是要保留其他字符? -
a-zA-Z0-9 和 -,/ 其余都不需要,但主要是现在我需要使用 vb.net 删除 crlf,cr,lf
这些是有效字符:
a-z
A-Z
0-9
-
/
如何从字符串中删除所有其他字符?
【问题讨论】:
- 和 / 还是要保留其他字符?
Dim cleanString As String = Regex.Replace(yourString, "[^A-Za-z0-9\-/]", "")
【讨论】:
[^A-Za-z0-9\-/#\s] 或类似名称。
使用正则表达式或 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。
【讨论】:
Regex.Replace(strIn, "[^\w\\- ]", "")
\w 类不仅匹配字母数字。例如,您的正则表达式不会正确清除 "a_string_containing_underscores"。 (此外,OP 希望允许使用正斜杠,而不是反斜杠。)
Dim txt As String
txt = Regex.Replace(txt, "[^a-zA-Z 0-9-/-]", "")
【讨论】:
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
【讨论】: