2010-04-28 33 views
1

我試圖用regex.replace掉不想要的字符,但我需要考慮空間:正則表達式來剝特殊字符

string asdf = "doésn't work?"; 
string regie = @"([{}\(\)\^$&._%#[email protected]=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)"; 
Response.Write(Regex.Replace(asdf,regie,"").Replace(" ","-")); 

回報doésntwork代替doésntwork

想法?

謝謝!

+1

這可以爲您節省尷尬:http://www.ultrapico.com/Expresso.htm – bzlm 2010-04-28 21:11:43

回答

7

您的正則表達式包含一個空格,因此在調用string.Replace之前空格被去掉。

string regie = @"([{}\(\)\^$&._%#[email protected]=<>:;,~`'\’ \*\?\/\+\|\[\\\\]|\]|\-)"; 
              ^here 

從正則表達式刪除它,你的代碼應該做你所期望的:

string regie = @"([{}\(\)\^$&._%#[email protected]=<>:;,~`'\’\*\?\/\+\|\[\\\\]|\]|\-)"; 
1

你有一個空間,你的正則表達式中,就在這裏:\’ \*