ฉันต้องการลบอักขระพิเศษทั้งหมดออกจากสตริง อักขระที่อนุญาตคือ AZ (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก), ตัวเลข (0-9), ขีดล่าง (_) หรือเครื่องหมายจุด (.)
ฉันมีสิ่งต่อไปนี้ใช้งานได้ แต่ฉันสงสัย (ฉันรู้!) มันไม่ได้มีประสิทธิภาพมาก:
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();
}
วิธีที่มีประสิทธิภาพที่สุดในการทำเช่นนี้คืออะไร? นิพจน์ทั่วไปจะมีลักษณะอย่างไรและเปรียบเทียบกับการจัดการสตริงปกติอย่างไร
สตริงที่จะทำความสะอาดจะค่อนข้างสั้นโดยปกติจะอยู่ระหว่าง 10 ถึง 30 อักขระ