Tôi muốn xóa tất cả các ký tự đặc biệt khỏi một chuỗi. Các ký tự được phép là AZ (chữ hoa hoặc chữ thường), số (0-9), dấu gạch dưới (_) hoặc dấu chấm (.).
Tôi có những điều sau đây, nó hoạt động nhưng tôi nghi ngờ (tôi biết!) Nó không hiệu quả lắm:
public static string RemoveSpecialCharacters(string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if ((str[i] >= '0' && str[i] <= '9')
|| (str[i] >= 'A' && str[i] <= 'z'
|| (str[i] == '.' || str[i] == '_')))
{
sb.Append(str[i]);
}
}
return sb.ToString();
}
Cách hiệu quả nhất để làm điều này là gì? Biểu thức chính quy sẽ trông như thế nào và so sánh với thao tác chuỗi thông thường như thế nào?
Các chuỗi sẽ được làm sạch sẽ khá ngắn, thường có độ dài từ 10 đến 30 ký tự.