gpt4 book ai didi

c# - 用 标签替换笑脸文字

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:44 25 4
gpt4 key购买 nike

我正在尝试生成一个正则表达式,它将用适当的“<img src="blah" alt="blah">”代码替换 OrderedDictionary 的值。

因为它还输入了 alt=""笑脸的文本版本,它匹配两次,把一切都搞砸了。

我目前的尝试如下。

foreach (string smiley in Smilies.Keys)
{
Regex re = new Regex("(?<!(=\"))" + Smilies[smiley] + "(?<!(\"))");
Trace.WriteLine(re.Replace(msg, @"«img src=""" + path + @"\images\" + Smilies[smiley] + @".gif"" alt=""" + smiley + @"""/»"));
}

表情符号在这里:

        Smilies = new OrderedDictionary();
Smilies.Add(@"O:)", "angel");
Smilies.Add(@":-x", "cheekkiss");
Smilies.Add(@":\", "chin");
Smilies.Add(@"B)", "cool");
Smilies.Add(@":~", "crutches");
Smilies.Add(@"«3", "love");
Smilies.Add(@"»:(", "mad");
Smilies.Add(@"):«", "mad");
Smilies.Add(@":o", "ohmy");
Smilies.Add(@"@(", "ouch");
Smilies.Add(@":)", "smile");
Smilies.Add(@"^_^", "smug");
Smilies.Add(@"^.^", "smug");
Smilies.Add(@":+", "therethere");
Smilies.Add(@":P", "tongue_out");

编辑:

这在大多数情况下目前是可行的。虽然我认为我将表情符号转换为图像的方法存在缺陷。

O:) => alt="O:)"通过到目前为止提供的正则表达式,产生匹配并替换为 alt="O:)" => alt="Oalt=":)"" .

也许我的理解有误?

foreach (string smiley in Smilies.Keys)
{
string s = Smilies[smiley].ToString();
string pattern = @"(?<!(=""))" + Regex.Escape(smiley) + @"(?<!(""))";
string rep = @"«img src=""" + path + @"\images\" + s + @".gif"" alt=""" + smiley + @"""/»";
Regex re = new Regex(pattern);
if (re.IsMatch(msg))
{
Trace.WriteLine("Got a match!");
string m2 = re.Replace(msg, rep);
msg = m2;
}
}

最佳答案

通过循环两次使其工作。曾经将基于符号的笑脸替换为其文本对应物。 :) = [smile]例如。然后第二次将文本表示替换为图像,附加 alt=":)"标记到 <img>代码。

虽然我不喜欢将整个 9 码循环两次并对输入执行两次 RegEx,但这是一种相当简单的方法。

修改后的工作代码如下。

        foreach (string smiley in Smilies.Keys)
{
Regex re = new Regex(Regex.Escape(smiley));
msg = re.Replace(msg, "[" + Smilies[smiley] + "]");
}

foreach (string smiley in Smilies.Keys)
{
Regex re = new Regex(@"\[" + Regex.Escape(Smilies[smiley].ToString()) + @"\]");
msg = re.Replace(msg, @"<img src=""" + Application.StartupPath + @"\images\" + Smilies[smiley] + @".gif"" alt=""" + smiley + @""">");
}

关于c# - 用 <img> 标签替换笑脸文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754690/

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