2012-05-12 2 views
3

작고 간단한 IRC 클라이언트를 만들고 있습니다. 특수한 경우에 사용합니다. Mirc/다른 유사한 클라이언트에서 다른 사용자가 입력하는 Mirc 색상 코드를 제거하고 싶습니다.Mirc 색상 코드의 Regex 바꾸기

스크린 샷 : 내가 성공하지 않고 약 1 시간을 위해 노력 해왔다

enter image description here

:

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 
+0

문서 도구를 사용할 수 있습니다 http://www.mirc.com/colors.html – dtb

+0

@dtb 예 나는 3를 사용하여 읽어 보시기 바랍니다^CN [M] 형식으로 ascii 코드를 만들었지 만 정규 표현식을 사용해도 코드를 제거 할 수는 없습니다. – sprocket12

+0

문자열 L12HelloWorld를 문자 배열로 변환하고 각 문자의 내용을 16 진수 또는 10 진수 형식으로 게시하면 도움을 줄 수 있습니다. – raisyn

답변

1

당신이 (반대 및 색상, 굵게 밑줄) ALL BURC 코드를 제거하려는 경우, 당신이 할 수있는 다음과 같은 정규식을 사용하십시오.

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

솔루션이 거의 작동했습니다. 편집 2를 참조하십시오. 시작 색상이 사라졌지만 일부 이상한 문자가 여전히 끝에 나타납니다. – sprocket12

+0

이상하게 들리니, 원본과 동일하게 해당 문자의 16 진수/ASCII 값을 게시 할 수 있습니까? – Jarmex

+0

밑줄 (\ x1F)을 포함하도록 코드를 편집했습니다. 원래는 잊어 버렸습니다. – Jarmex

0

이 가 이

기본적으로 그냥 목을 ... 당신의 문자열에서 문자가 무엇인지보고 그 3의 일치하도록 정규식을 구축 L의 문자입니다

s = new Regex(@"\x03(\d{1,2}(,\d{1,2})?)?").Replace(s, ""); 
하는 안녕하세요 세계 샘플 당신을 위해 작동, 다음을 시도하십시오 정규식 \의 X03은 51 ... 정규식 \의 D에 숫자 3

@EDIT 3 :
I가 전기 코드 준다 :

" 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();