2009-09-07 28 views

Trả lời

31

này nên thực hiện công việc:

var input = "User Name ([email protected])"; 
var output = Regex.Replace(input, @" ?\(.*?\)", string.Empty); 

Lưu ý thoát của () chars để họ aren' t được công nhận là điểm đánh dấu nhóm

+0

điều này là tuyệt vời để thực hiện một việc như "Tên người dùng (1), Người dùng khác (2), Người dùng thêm (3)" thành "Tên người dùng, Người dùng khác, Người dùng bổ sung". Cảm ơn vì điều đó. –

+0

Cảm ơn, đã làm việc một cách hoàn hảo. – Jon649

9

Ý của bạn là bạn muốn đầu ra tên người dùng, thay vì địa chỉ email? Trong cả hai trường hợp, bạn không cần cần regexes. Ví dụ: giả sử đầu vào luôn được định dạng đúng và do đó bỏ đi bất kỳ kẻ lừa đảo nào r checking,

string output = input.Substring(0, input.IndexOf(" (")) 

sẽ đưa bạn tên người dùng. Và nếu bạn đã muốn địa chỉ email, đó cũng là có sẵn mà không cần đến regexes:

int n; 
string output = input.Substring(n = 1 + input.IndexOf('('), 
           input.IndexOf(')') - n) 
1

Tôi chỉ cung cấp một cách khác để làm điều này, mặc dù tôi chỉ sẽ sử dụng regex bản thân mình như này thiếu uyển chuyển:

string output = input.Split('(')[0].TrimEnd(); 
Các vấn đề liên quan