簡體   English   中英

將任一字符串替換為另一個字符串

[英]Replace either string with another string

我想用Hdp替換HvosHc

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

str1str2應該是相同的。

在您嘗試的模式中,這部分(c|v)*匹配cv 0+ 次,例如也可以匹配ccccvvc

您可以使用字符 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM