【发布时间】:2014-02-08 00:42:44
【问题描述】:
我对@987654321@ 和Regex 有疑问。我如何通过文字来定义问题,但我会尝试解释......
这是我的代码:
var smilies = new OrderedDictionary
{
{@":(", "smile_sadx24"},
{@">:(", "smile_angryx24"},
};
foreach (string smiley in smilies.Keys)
{
var re = new Regex(@"(?<!(=""))" + Regex.Escape(smiley) + @"(?<!(""))");
if (re.IsMatch(incomingtext))
{
string m2 = re.Replace(incomingtext, "<img src=\"/Content/themes/mavi/img/custom/smiles/" + smilies[smiley] + ".png\" alt=\"" + smiley + "\"/>");
incomingtext = m2;
}
}
当我尝试处理 >:( 时,它返回 smile_sadx24 而不是 smile_angryx24...
因为它首先捕获:(...
我该如何解决这个问题?
【问题讨论】:
-
试试把愤怒的笑脸放在字典的首位?
-
已经试过了。没有效果:/
标签: c# regex ordereddictionary