簡體   English   中英

變量在C#中替換為字符串

[英]Variables replacing into string in C#

我有格式的字符串

“sometext%1% - %2%blablabla%15%”

和類變量的集合:

public class Variable
{
     public long Id { get; set; }
     public string Value { get; set; }
}

如何使用Regex.Replace替換所有子字符串,例如"%{ID Number}%"其中Value字段為Id等於{ID Number} (例如,將"%1%"替換為ID = 1的"%1%"變量值”字段)方法或類似的東西?

您可以使用自己的匹配評估程序。 這是未經測試的,但解決方案應該與此代碼類似:

String processed = Regex.Replace (rawInput, @"%(\d+)%", MyMatchEvaluator);

private string MyMatchEvaluator (Match match)
{
    int id = int.Parse (match.Captures[0].Value);
    return _variables.Where(x => x.Id == id).Value;
}

其中_variables是你的變量收集和rawInput您輸入的字符串。

像這樣的東西?

var data = new List<Variable>
{
    new Variable{Id = 1,Value = "value1"},
    new Variable{Id = 2, Value = "value2"}

};

var sb = new StringBuilder("sometext%1%-%2%blablabla%15%");

foreach (Variable t in data)
{
    string oldString = String.Format("%{0}%", t.Id);
    sb.Replace(oldString, t.Value);
}

//sometextvalue1-value2blablabla%15%
string output = sb.ToString();

.Net沒有內置任何功能,但是這種功能有幾種實現方式。

看看Phil Haack的這篇博客文章 ,他在那里探討了幾個實現。 博客文章是從2009年開始的,但代碼應該還是可以使用的:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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