正则表达式替换Mirc颜色代码

时间:2012-05-12 22:00:05

标签: c# regex replace irc mirc

我正在制作一个小型/简单的IRC客户端,用于特殊用例。我想删除其他用户从他们的Mirc /其他类似客户输入的Mirc颜色代码。

屏幕截图:

enter image description here

我已经尝试了大约1小时没有成功:

string msg = string.Format("{0}\n", e.Data.Message);
//msg = Regex.Replace(msg, @"\x03(?:\d{1,2}(?:,\d{1,2})?)?", string.Empty); // Ive tried all sorts here.
txtActivity.AppendText(msg);

请提前帮助,谢谢。

编辑:

这是红色的HelloWorld。

3
51
72
101
108
108
111
87
111
114
108
100
10

编辑2:

enter image description here

编辑3:

3
48
49
44
49
53
32
49
46
32
73
110
32
116
104
101
32
78
97
109
101
32
111
102
32
31
65
108
108
97
104
31
44
32
116
104
101
32
77
111
115
116
32
66
101
110
101
102
105
99
101
110
116
44
32
116
104
101
32
77
111
115
116
32
31
77
101
114
99
105
102
117
108
31
46
32
3
10

2 个答案:

答案 0 :(得分:1)

如果要删除所有BURC代码(粗体,下划线,反色和彩色),您还可以使用正则表达式,如下所示:

msg = Regex.Replace(msg, @"[\x02\x1F\x0F\x16]|\x03(\d\d?(,\d\d?)?)?", String.Empty);

答案 1 :(得分:0)

尝试以下内容,适合您的世界样本

s = new Regex(@"\x03(\d{1,2}(,\d{1,2})?)?").Replace(s, "");

基本上只需查看字符串中的字符串,然后构建正则表达式以匹配其中任何字符串 3 ...扼杀L char是regex \ x03 51 ...数字3在正则表达式\ d

@EDIT 3:
我发布的代码给出了:

" 1. In the Name of Allah, the Most Beneficent, the Most Merciful. \n"

如果您不想要空格和换行符,可以使用.Trim()

 s = new Regex(@"\x03(\d{1,2}(,\d{1,2})?)?").Replace(s, "").Trim();