2012-02-23 45 views
7

Tôi có một tệp văn bản để xử lý, có một số số. Tôi muốn JUST nhắn tin và không có gì khác. Tôi đã quản lý để xóa các dấu chấm câu, nhưng làm cách nào để xóa các số? Tôi muốn điều này bằng cách sử dụng mã C#.Xóa số khỏi văn bản bằng C#

Ngoài ra, tôi muốn xóa các từ có độ dài lớn hơn 10. Làm cách nào để thực hiện điều đó bằng Reg Expressions?

+0

Tệp trông như thế nào (ví dụ đầu vào/đầu ra ???) và mã bạn phải xóa dấu chấm câu ở đâu? – Jon

+0

Bạn có thể cung cấp dữ liệu mẫu trong tệp của mình không? –

+0

Có thể bạn có thể hiển thị một số mã để cộng đồng có thể thấy những gì bạn đã thử? – Arion

Trả lời

27

Bạn có thể làm điều này với một regex:

string withNumbers = // string with numbers 
string withoutNumbers = Regex.Replace(withNumbers, "[0-9]", ""); 

Sử dụng regex này để xóa từ với hơn 10 ký tự:

[\w]{10, 100} 

100 xác định chiều dài tối đa để phù hợp. Tôi không biết nếu có một lượng hóa cho chiều dài tối thiểu ...

+1

Đây là cách tôi cũng làm như vậy. Prachi - Hãy nhớ sử dụng thêm chỉ thị cho System.Text.RegularExpressions nếu bạn chưa có nó! – Bridge

+0

+1, câu trả lời cạnh tranh nhất ... –

+0

Cảm ơn, đã làm việc hoàn hảo! – Cyang

3

Chỉ có chữ cái và không có gì khác (vì tôi thấy bạn cũng muốn loại bỏ các dấu chấm câu)

Regex.IsMatch(input, @"^[a-zA-Z]+$");

1

Bạn cũng có thể sử dụng string.Join:

string s = "asdasdad34534t3sdf43534"; 
s = string.Join(null, System.Text.RegularExpressions.Regex.Split(s, "[\\d]")); 
1

Phương pháp Regex.Replace sẽ thực hiện thủ thuật.

// regex to match any digit 
var regex = new Regex("\d");      
// replace all matches in input with empty string 
var output = regex.Replace(input, String.Empty); 
Các vấn đề liên quan