Misalkan saya memiliki regex berikut:
-(\d+)-
dan saya ingin mengganti, menggunakan C #, Grup 1 (\d+)
dengan AA
, untuk mendapatkan:
-AA-
Sekarang saya menggantinya menggunakan:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Tapi saya tidak terlalu suka ini, karena jika saya mengubah pola untuk mencocokkan _(\d+)_
sebagai gantinya, saya harus mengganti string pengganti _AA_
juga, dan ini bertentangan dengan prinsip KERING.
Saya mencari sesuatu seperti:
Pertahankan teks yang cocok persis seperti apa adanya, tetapi ubah Grup 1 dengan this text
dan Grup 2 dengan another text
...
Sunting:
Itu hanya contoh. Saya hanya mencari cara umum untuk melakukan apa yang saya katakan di atas.
Ini harus bekerja untuk:
anything(\d+)more_text
dan pola apa pun yang dapat Anda bayangkan.
Yang ingin saya lakukan adalah mengganti hanya grup, dan mempertahankan sisa pertandingan.
:)
. Menurut pendapat saya, solusi itu jauh lebih baik dan lebih bersih daripada menggunakan lookahead dan lookbehinds.