Giả sử tôi có regex sau:
-(\d+)-
và tôi muốn thay thế, sử dụng C #, Nhóm 1 (\d+)
bằng AA
, để có được:
-AA-
Bây giờ tôi đang thay thế nó bằng cách sử dụng:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Nhưng tôi không thực sự thích điều này, bởi vì nếu tôi thay đổi mẫu để phù hợp _(\d+)_
thay vào đó, tôi cũng sẽ phải thay đổi chuỗi thay thế _AA_
và điều này trái với nguyên tắc DRY.
Tôi đang tìm kiếm một cái gì đó như:
Giữ văn bản phù hợp chính xác như thế nào, nhưng thay đổi Nhóm 1 theo this text
và Nhóm 2 bằng another text
...
Chỉnh sửa:
Đó chỉ là một ví dụ. Tôi chỉ tìm kiếm một cách chung để làm những gì tôi đã nói ở trên.
Nó nên hoạt động cho:
anything(\d+)more_text
và bất kỳ mô hình bạn có thể tưởng tượng.
Tất cả những gì tôi muốn làm là chỉ thay thế các nhóm và giữ phần còn lại của trận đấu.
:)
. Theo tôi, giải pháp đó tốt hơn và sạch hơn nhiều so với sử dụng lookahead và lookbehinds.