簡體   English   中英

如何使用正則表達式而不是替換字符串刪除特殊字符

[英]How to remove special characters with regex instead of Replace string

我目前的方法:

var q = new StringBuilder(query);
        return q.Replace("'", " ")
            .Replace("\"", " ")
            .Replace(":", "")
            .Replace("#", " ")
            .Replace("/", " ")
            .Replace("\\", " ")
            .Replace(",", " ")
            .Replace("&", " ")
            .Replace("?", " ")
            .Replace("%", " ")
            .Replace(".", " ")
            .Replace("quot;", " ")
            .Replace("-", " ")
            .Replace("*", " ")
            .ToString().Trim();

我該如何使用正則表達式來獲得更好的性能?

編輯:抱歉,我要用空格“”替換所有特殊字符。

您可以使用此:

string q = Regex.Replace(query, @"[:#/\\]", ".");
q = Regex.Replace(q, @""|['"",&?%\.*-]", " ");

編輯:

仔細檢查您的操作后,您的代碼會將幾個字符轉換為. 然后翻譯全部. 進入空間。 因此,您可以這樣做:

string q = Regex.Replace(query, @""|['"",&?%\.*:#/\\-]", " ").Trim();

不過,我不太確定您要在這里做什么。 我覺得您真正要尋找的是:

string q = Regex.Replace(query, @"[^\w\s]", "");

存在" 在那里使我陷入困境,這就是為什么我不確定你在做什么的原因。 如果要擺脫HTML實體,可以先通過HttpUtility.HtmlDecode(string)運行query ,然后再應用正則表達式。

嘗試這個。

string pattern = @"[^a-zA-Z0-9]";            
string test = Regex.Replace("abc*&34567*opdldld(aododod';", pattern, " ");   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM