3

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

截屏 :

在此处输入图像描述

我已经尝试了大约 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:

在此处输入图像描述

编辑 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
4

2 回答 2

3

如果您想去除所有 BURC 代码(粗体、下划线、反向和颜色),您还可以使用如下正则表达式:

msg = Regex.Replace(msg, @"[\x02\x1F\x0F\x16]|\x03(\d\d?(,\d\d?)?)?", String.Empty);
于 2012-05-12T22:42:00.920 回答
0

尝试以下,为您工作 hello world 示例

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

基本上只是看看你的字符串中的字符是什么并构建你的正则表达式以匹配它们中的任何一个 3...扼杀 L char 这是正则表达式 \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();
于 2012-05-12T22:59:37.183 回答