Tôi muốn sử dụng biểu tượng trong mẫu RegEx để tìm các kết quả phù hợp, nhưng tôi không muốn chúng thay thế. Điều này là dành cho thao tác lớp và không gian tên trong C#.RegEx - Kết hợp sử dụng các biểu tượng nhưng không thay thế chúng
Ví dụ:
MyNamespaceLib.EntityDataModelTests.TestsMyClassTests+MyInnerClassTests
phải được thay thế như:
MyNamespaceLib.EntityDataModel.TestsMyClass+MyInnerClass
(Lưu ý, chỉ "thử nghiệm" là thay thế khi nó xuất hiện cuối cùng của phần không gian tên và không phải khi đó là một phần của tên lớp/không gian tên)
Tôi đã giành được phần đầu tiên trong việc tìm kiếm các trận đấu, nhưng tôi đang chiến đấu để giữ các biểu tượng trong trận đấu thay thế.
Cho đến nay tôi có:
var input = "MyNamespaceLib.EntityDataModelTests.TestsMyClassTests+MyInnerClassTests";
var output = Regex.Replace(input, "Tests[.+]|$", "");
Tôi đã thử sử dụng một nhóm phi chụp, nhưng tôi nghi ngờ nó không có nghĩa là cho con đường tôi cố gắng sử dụng nó.
Cảm ơn!
Không, ngược lại, tôi muốn thay thế các kết quả khớp với ".", "+" Hoặc cuối dòng. Nhưng nếu từ "Kiểm tra" xuất hiện trong một không gian tên hoặc tên lớp, thì nó không được thay thế. – Steve
@ user1927385: 'Thử nghiệm (?! [^. +])', Sau đó. – Ryan
Đẹp, điều đó hoạt động hoàn hảo. Tôi đã không bao giờ được sử dụng lookaheads trong Regex, vì vậy tôi sẽ đi đọc thêm một số chi tiết. Cảm ơn minitech. – Steve