如何动态替换字符串的自定义标记
本文关键字:字符串 自定义 替换 何动态 动态 | 更新日期: 2023-09-27 18:05:53
我在其中一个MSSQL表中保存了以下字符串:
"Inflicts [regular damage]{mechanic:regular-damage}."
我想将[]中的所有内容替换为指向mechanic:regular-damage的链接,如下所示:
"Inflicts <a href='"/Mechanics.aspx?Name=regular-damage'">regular damage</a>."
我怎么能那样做呢?
您需要捕获三样东西—方括号的内容、冒号之前的花括号的内容以及花括号的其余内容。您可以使用以下regex:
@"'[([^']]+)']{([^:]+):([^}]+)}"
// ^^^^^^^^ ^^^^^^^ ^^^^^^^
// Group$1 Group$2 Group$3
捕获这三个组后,您可以使用以下替换模板格式化答案:
@"<a href=""$2.aspx?Name=$3"">$1</a>"
把它们放在一起,就得到
var s = @"Inflicts [regular damage]{mechanic:regular-damage}.";
var r = Regex.Replace(
s
, @"'[([^']]+)']{([^:]+):([^}]+)}"
, @"<a href=""$2.aspx?Name=$3"">$1</a>"
);
这生产
Inflicts <a href="mechanic.aspx?Name=regular-damage">regular damage</a>.
演示。