我需要一個正則表達式來刪除與字符串中的數字和字母不同的所有符號。例如:刪除字符串中與數字和字母不同的所有符號
string address = "TEXT 3 [email protected]#$%^&*()_}|{:?> REMOVE ALL SYMBOLS 45";
string result = "TEXT 3 REMOVE ALL SYMBOLS 45";
任何想法?
我需要一個正則表達式來刪除與字符串中的數字和字母不同的所有符號。例如:刪除字符串中與數字和字母不同的所有符號
string address = "TEXT 3 [email protected]#$%^&*()_}|{:?> REMOVE ALL SYMBOLS 45";
string result = "TEXT 3 REMOVE ALL SYMBOLS 45";
任何想法?
這應該工作:
var result = new Regex("[^a-zA-Z0-9 ]").Replace(address, string.Empty);
這僅保留無論在a-Z
,A-Z
或0-9
或white space
你也可以使用LINQ:
var result2 = new String(address.Where(x => char.IsLetterOrDigit(x)
|| char.IsWhiteSpace(x)).ToArray());
試試這個請
string address = "TEXT 3 [email protected]#$%^&*()_}|{\":?> REMOVE ALL SYMBOLS 45";
var sb = new StringBuilder();
foreach (var c in address)
{
if (Char.IsLetterOrDigit(c) || Char.IsWhiteSpace(c))
sb.Append(c);
}
var result = sb.ToString();
它應該比正則表達式更快。
不知道是否if(c ==''|| Char.IsLetterOrDigit(c))...'不是更好,現在你還允許不需要的製表符或換行符。 –
空間也沒有被要求,但他們出現在樣本..也我們不知道我們應該考慮奧特文化。所以有很多問題真的:) – tym32167
兩者都適合我。 我的最終代碼:
var addressWithoutEmtySpacesMoreThanOne = Regex.Replace(address, @"\s+", " ");
var result = new Regex("[^a-zA-Zа-яА-Я0-9 -]").Replace(addressWithoutEmtySpaces, "");
customer.Address = result;
最後的' - ':它是幹什麼用的? –
@PowerPuffGirl究竟是哪一個? – user3185569
爲什麼倒票? – user3185569