我剛寫了一個控制檯應用程序來替換大量utf-8編碼文件中的某個字符串。我需要覆蓋這個字符串的大約20個不同的情況,所以我將我的代碼片段減少到了必要的部分。 代碼看起來是這樣的:c#中字符串替換的最佳實踐
foreach (String file in allFIles)
{
string text = "";
using (StreamReader r = new StreamReader(file))
{
text = r.ReadToEnd();
}
if (text.Contains(Case1))
{
string textCase1 = "";
using (StreamReader rCase1Reader = new StreamReader(file))
{
textCase1 = rCase1Reader.ReadToEnd().Replace(Case1, Case1Const);
}
using (StreamWriter wCase1 = new StreamWriter(file, false, Encoding.UTF8))
{
wCase1.Write(textCase1);
}
UsedFIles.Add(file);
}
}
我的問題是,如果我試圖替換字符串,看起來像這樣:"partnumber: 58"
同時還有看起來一個字符串像這樣"partnumber: 585"
我的問題是,如果當前字符串包含所需的子字符串,並且還有一個類似於"partnumber: 58"
和"partnumber: 585"
的高度相似的字符串,那麼我的代碼也會替換高度相似的字符串。 有沒有辦法可以避免這種情況?
使用正則表達式。粘貼一些文件的例子。 – BWA
整個字符串是什麼樣的? – Liam
您需要閱讀下一個字符。確定它是否是分隔符,然後決定是否要進行替換。 –