2010-09-13 136 views
9

刪除特殊字符,這些字符:從字符串

a-z 
A-Z 
0-9 
- 
/

如何從我的字符串中刪除所有其他字符?

+3

哪些字符不特殊?你想要清理後的字符串只包含'-'和'/'還是要保留其他字符? – LukeH 2010-09-13 13:51:12

+0

a-zA-Z0-9和 - ,/休息一切都不需要,但主要是現在我需要刪除crlf,cr,如果使用vb.net – Sriram 2010-09-13 13:57:13

回答

3

使用任何正則表達式或字符類功能,如IsControl之前(),ISDIGIT()等獲取的這些函數的列表在這裏:http://msdn.microsoft.com/en-us/library/system.char_members.aspx

下面是一個樣本正則表達式例子:

(導入此使用前正則表達式)

Imports System.Text.RegularExpressions 

在你的函數,寫這

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

該聲明將取代任何不是單詞「\或 - 」的字符。對於例如aa-b @ c將成爲aa-bc。

+1

+1 OP可能想保留空格 - 儘管也許不是標籤(?)這將是'Regex.Replace(strIn,「[^ \ w \\ - ]」,「」)' – 2010-09-13 14:20:10

+0

小心! '\ w'類不僅可以匹配字母數字。例如,你的正則表達式不會正確清理*「a_string_containing_underscores」*。 (另外,OP想要允許正斜槓,而不是反斜槓。) – LukeH 2010-09-13 14:26:19

+0

嗯。斜線應該是不同的。 – 2010-09-13 16:36:07

20
Dim cleanString As String = Regex.Replace(yourString, "[^A-Za-z0-9\-/]", "") 
+0

請求不多支持..如果我需要從中排除特殊字符。不是特殊字符,說如果我想要空格和#符號不被替換..我該如何修改這個.. – 2017-09-14 12:01:09

+0

@sforsandeep:只需將它們添加到組中,例如:'[^ A-Za-z0-9 \ - /#\ s]'或類似的。 – LukeH 2017-09-15 11:31:31

0
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 
+0

請添加一些關於代碼的細節 – Saveen 2017-01-02 13:25:46