2012-11-17 44 views
9

Tôi có chuỗi chứa nhiều ký tự. Tôi muốn loại bỏ A-Za-z và không gian màu trắng và còn lại với phần còn lại. Cách tốt nhất để làm điều này là gì?xóa ký tự alpha và khoảng trắng khỏi chuỗi

Đây là những gì tôi đã cố gắng

presaleEstimateHigh = Regex.Replace(presaleEstimateHigh, @"[A-Za-z]", string.Empty); 

nhưng tôi cũng cần phải loại bỏ khoảng trắng.

Trả lời

10

Bạn có thể sử dụng \ s.

Ví dụ:

presaleEstimateHigh = Regex.Replace(presaleEstimateHigh, @"[A-Za-z\s]", string.Empty); 
3

Cụm từ thông dụng của bạn là tốt, ngoại trừ khoảng trắng. Điều này sẽ hoạt động:

string result = Regex.Replace(myString, @"[a-zA-Z\s]+", string.Empty); 
+0

'% 20' không phải là khoảng trắng duy nhất trong thị trấn. – mellamokb

+0

@mellamokb Đúng - cập nhật câu trả lời của tôi. –

3

Nếu không có biểu thức thông thường:

var chars = str.Where(c => !char.IsLetter(c) && !char.IsWhitespace(c)).ToArray(); 
var rest = new string(chars); 
1

Bạn hầu như đã làm cho nó. Sử dụng biểu thức chính quy này

[a-zA-Z ]+ 

Đơn giản chỉ bao gồm khoảng trắng. Thêm + làm cho nó hiệu quả hơn, vì toàn bộ chuỗi ký tự có thể được thay thế cùng một lúc (nội bộ).

+0

Điều này không bao gồm các tab mặc dù. – Dan

Các vấn đề liên quan