Tôi đang cố gắng tìm ra cách xóa tất cả văn bản trong chuỗi trước khi khớp trong Regex. Tôi đang mã hóa điều này trong C#. Ví dụ, nếu chuỗi là "hello, test matching", và pattern là "test", tôi muốn kết quả cuối cùng là "test matching" (nghĩa là xóa mọi thứ trước khi test).Regex + Xóa tất cả văn bản trước khi khớp
Mọi suy nghĩ? Cảm ơn!
CHỈNH SỬA: Có lẽ tôi nên cụ thể hơn một chút trong ví dụ của tôi sau khi đọc câu trả lời của bạn (và cảm ơn họ). Tôi thích phương pháp lookahead, nhưng tôi đã đơn giản hóa ví dụ của mình. Để làm cho mọi việc khó khăn hơn, thường là chuỗi trông giống như:
"hello, kết hợp kiểm tra thử nghiệm everythingAfter"
Vì vậy, nếu tôi sử dụng mô hình "test", nó sẽ bắt đầu tiên. Mục đích của tôi là thay thế tất cả văn bản sau trận đấu thứ hai. Tức là: kết quả là "test everythingAfter" .... Xin lỗi về điều đó.
Tôi không đủ quen thuộc với C# để viết mã. Tuy nhiên, không sử dụng RegEx, sử dụng các phương thức chuỗi cơ bản. * tìm kiếm * để tìm sự xuất hiện, hơn là sử dụng * chuỗi con * chụp * mọi thứ sau *. –
Đối với các mẫu bạn đang cố gắng xóa, chúng có luôn luôn là chuỗi hoặc đôi khi chúng là biểu thức chính quy thực tế không? Nếu trước đây, sử dụng 'IndexOf' và' Chuỗi con' và tránh các hình phạt về hiệu suất mà bạn không cần. –
Có thể trùng lặp: [Xóa văn bản khỏi chuỗi cho đến khi nó đạt đến một ký tự nhất định] (http://stackoverflow.com/q/8371922/299327) –