我需要用某个值替换给定字符串中的所有标记字符串,例如:
"This is the level $levelnumber of the block $blocknumber."
我想把它翻译成:
"This is the level 4 of the block 2."
这只是一个例子。实际上,我在文本中有几个 $data 标记,需要在运行时将其更改为某些数据。我不知道字符串中会出现什么 $data 标签。
我打算使用正则表达式,但正则表达式真的很混乱。
我试过没有成功(有几种双引号变体,没有引号等):
public static ShowTags (string Expression)
{
var tags = Regex.Matches(Expression, @"(\$([\w\d]+)[&$]*");
foreach (var item in tags)
Console.WriteLine("Tag: " + item);
}
任何帮助表示赞赏。
[编辑]
工作代码:
public static ReplaceTagWithData(string Expression)
{
string modifiedExpression;
var tags = Regex.Matches(Expression, @"(\$[\w\d]+)[&$]*");
foreach (string tag in tags)
{
/// Remove the '$'
string tagname = pdata.Remove(0, 1);
/// Change with current value
modifiedExpression.Replace(pdata, new Random().ToString()); //Random simulate current value
}
return modifiedExpression;
}