gpt4 book ai didi

c# - 用于替换标签的正则表达式

转载 作者:行者123 更新时间:2023-11-30 16:51:15 27 4
gpt4 key购买 nike

我需要像这样替换字符串

@@colored:some_text @color:clr@@

使用以下 html 标签:

<p style='color:clr;'>some_text</P>

我写了一个正则表达式来搜索这样的文本片段,但我不知道如何进行替换。 Here是我的正则表达式的一个例子

这是我尝试执行的 C# 代码示例

    private string Colored(string data)
{
var colorMatches = Regex.Matches(data, "@@colored:(.|\n)*? @color:(.*?)@@");
if (colorMatches.Count == 0)
return data;

var sb = new StringBuilder();

var matches = new List<Match>();
sb.Append(Regex.Replace(data, @"@@colored:(.|\n)*? @color:(.*?)@@", match =>
{
// i don't know how to replace text properly
}));

return sb.ToString();
}

请帮我做文本替换。提前致谢!

最佳答案

Regex.Replace让你使用 $<number>引用正则表达式中定义的 捕获组 捕获的值的语法以进行替换。您的电话Replace看起来像这样:

Regex.Replace(
data
, @"@@colored:((?:.|\n)*?) @color:(.*?)@@"
, @"<p style='$2;'>$1</p>"
)

$2指的是(.*?)的内容捕获组; $1引用((?:.|\n)*?)的内容.注意使用非捕获括号 (?: ...)用于分组而不创建捕获组。但是,由于回溯,这可能会导致速度显着下降,因此您需要非常小心。参见 this article寻求解决问题的方法。

关于c# - 用于替换标签的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34039806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com