我想用一個后跟一個點的本身替換一個子字串,當它是一個較長序列的開始時(即它是一個前綴)。例如給定字串:
"'abc' 'xyzabcdef' 'abcdef'"
我想將前綴abc轉換為abc., 給出:
"'abc' 'xyzabcdef' 'abc.def'"
請注意,獨立字串 ofabc不會被轉換。
我試過這段代碼:
var input = @"'abc' 'xyzabcdef' 'abcdef'";
var result = Regex.Replace(input, @"\b(abc)\w ", @"$1.");
Console.WriteLine(result);
這使:
'abc' 'xyzabcdef' 'abc.'
請注意,在第三個輸出中,尾隨def也被替換。我預計替換的$1只會與 group 相關聯(abc),但它顯然與整個模式匹配。我正在尋找Regex.Replace()呼叫的正確表述。
uj5u.com熱心網友回復:
嘗試替換正則運算式模式(?<=')abc(?=\w)。這個模式說匹配:
(?<=') assert that single quote precedes
abc match and consume abc
(?=\w) assert that at least one word character follows
var input = @"'abc' 'xyzabcdef' 'abcdef'";
var result = Regex.Replace(input, @"(?<=')abc(?=\w)", @"abc.");
Console.WriteLine(result); // 'abc' 'xyzabcdef' 'abc.def'
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/425685.html
上一篇:指定DataContext會導致Xaml看不到它不是null嗎?
下一篇:WPFDatagrid系結欄位
