string input = "msg";
Match match;
Regex regex = new Regex(@"(\[color=([\S]+)\])([ \S\t\]*?)(\[\/color\])", RegexOptions.IgnoreCase);
for (match = regex.Match(input); match.Success; match = match.NextMatch())
{
input = input.Replace(match.Groups[0].ToString(), "<FONT COLOR=" + match.Groups[2].ToString() + ">" + match.Groups[3].ToString() + "</FONT>");
}这样可以得到正常的值为:<FONT COLOR=#FF0000>msg</FONT>但是
当input = "msgmsg2";得到的却是:<FONT COLOR=#FF0000]msg[/color][color=#FFee00>msg2</FONT>请问有什么办法可以解决这一问题?
Match match;
Regex regex = new Regex(@"(\[color=([\S]+)\])([ \S\t\]*?)(\[\/color\])", RegexOptions.IgnoreCase);
for (match = regex.Match(input); match.Success; match = match.NextMatch())
{
input = input.Replace(match.Groups[0].ToString(), "<FONT COLOR=" + match.Groups[2].ToString() + ">" + match.Groups[3].ToString() + "</FONT>");
}这样可以得到正常的值为:<FONT COLOR=#FF0000>msg</FONT>但是
当input = "msgmsg2";得到的却是:<FONT COLOR=#FF0000]msg[/color][color=#FFee00>msg2</FONT>请问有什么办法可以解决这一问题?
解决方案 »
- 关于C#编写读心术的问题
- 谁能帮我看下为什么socket心跳包完全没起作用呢?
- 100分请大家研究一下,如何使用HttpWebRequest登录博客大巴?
- 数据 格式化的问题
- axWebbrowser控件 操作 Excel问题
- 请问QQ聊天界面的字体和表情是用什么控件来做的。。
- 高手请进!关于类型转换的问题!
- 新手请教:现在出现了这样的一个问题。我在一个按纽里执行了两个事件,一个是生成数据库里的一条记录,另一个是读数据绑定到树。可是....
- 获取汉语拼音组件,按拼音查找汉字??
- 讨论\调查:大家在作和数据库联系的项目时候,实际中常使用SQL的方式是什么?
- TreeView节点选择问题
- 如何启动不明文保存在硬盘上的程序?保存在资源里程序,大家出个意见~~
Match match;
Regex regex = new Regex(@"(\[color=([\S]+)\])([ \S\t\]*?)(\[\/color\])", RegexOptions.IgnoreCase);
for (match = regex.Match(input); match.Success; match = match.NextMatch())
{
input = input.Replace(match.Groups[0].ToString(), " <FONT COLOR=" + match.Groups[2].ToString() + ">" + match.Groups[3].ToString() + " </FONT>");
} 这样可以得到正常的值为: <FONT COLOR=#FF0000>msg </FONT> 但是
当input = "msgmsg2"; 得到的却是: <FONT COLOR=#FF0000]msg[/color][color=#FFee00>msg2 </FONT> 请问有什么办法可以解决这一问题?
string input = "msgmsg2";
string result = Regex.Replace(input, @"\[color=([^]]*)\](\w*)\[/color\]", new MatchEvaluator(delegate(Match match) { return "<FONT COLOR=" + match.Groups[1] + ">" + match.Groups[2] + "</FONT>"; }));
Console.WriteLine(result);这个不太准的,应该要用平衡组,但是平衡组我不是很熟
string input = "msg msg2";
Regex regex = new Regex(@"\[\s*color\s*=([^]]*)\]([^[]+)\[\s*\/\s*color\s*\]",RegexOptions.IgnoreCase);
MatchCollection mc = regex.Matches(input);
foreach (Match m in mc)
{
string output = regex.Replace(input, "<FONT COLOR=$1>$2</FONT>");
Console.WriteLine(output);
}
input = Regex.Replace(input, @"\[(color)=([^\]]+)\]([^\[]*)\[/\1\]", "<font color='${2}'>${3}</font>", RegexOptions.IgnoreCase);//<font color='#FF0000'>msg</font><font color='#FFee00'>msg2</font>
Match match;
Regex regex = new Regex(@"(\[color=((?:(?!\[color)[\S])+?)\])([ \S\t]*?)\[\/color\]", RegexOptions.IgnoreCase);
for (match = regex.Match(input); match.Success; match = match.NextMatch())
{
input = input.Replace(match.Groups[0].ToString(), "<FONT COLOR= " + match.Groups[2].ToString() + "> " + match.Groups[3].ToString() + "</FONT> ");
}
Console.WriteLine(input);
MessageBox.Show(input);//结果<font color='#FF0000'>msg</font><font color='#FFee00'>msg2</font>
input = Regex.Replace(input, @"\[(color)=([^\]]+)\]([\s\S]*?)\[/\1\]", "<font color='${2}'>${3}</font>", RegexOptions.IgnoreCase);
MessageBox.Show(input);