[英]Replace either string with another string
我想用Hdp
替換Hvos
或Hc
:
var hvos = "Dhhs.Hvos.Automation.UI";
var hc = "Dhhs.Hc.Automation.UI";
var pattern = "H(c|v)*(os)";
var replacement = "Hdp";
var str1 = Regex.Replace(hc, pattern, replacement).Replace("UI", "Data");
Console.WriteLine(str1);
var str2 = Regex.Replace(hvos, pattern, replacement).Replace("UI", "Data");
Console.WriteLine(str2);
但只有Hvos
被替換,而Hc
沒有被替換:
Dhhs.Hc.Automation.Data
Dhhs.Hdp.Automation.Data
str1
和str2
應該是相同的。
在您嘗試的模式中,這部分(c|v)*
匹配c
或v
0+ 次,例如也可以匹配ccc
或cvvc
您可以使用字符 class 和可選部分來匹配os
來編寫模式,並使用單詞邊界\b
來防止部分匹配。
\bH[cv](?:os)?\b
請注意,該模式也將匹配Hcos
正如JHBonarius在評論中指出的那樣,這種模式將是更精確的匹配:
\bH(?:c|vos)?\b
創建一個執行此操作的方法並為這兩個值調用它
字符串 s = str.Replace("Hvos", "Hdp").Replace("Hc","Hdp");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.