[英]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.