2012-09-03 84 views
0

在.NET中有沒有辦法一一列舉了\所有值W?正則表達式全部 W

至於爲什麼我解析未知文件的單詞。會遇到使用嵌入是一無所有,除了標準的一些文件。見下文

樣品 「PK!Ryeu * [CONTENT_TYPES] .XML¢(RÍNã0?÷HO 2·£Æ530̨)?Y!@?Ycß6VÛò5о= 7)T *」 「」 「AM」 OU? ïºÕIA |?UOA 「」 & I * E1 + AT)¯Wìÿý¿Ñ+0I§¥○*¶dçÓoGUU,hμÃ週日)£ª¡???? ??我的朋友?|?LD¢Ë8çAª? ??今天O¹ò.K£°和/ IA£馬阿NIcÅÅú½Öªb2k勒??〜g2ò³Q½zlHºÄAj¬RcË9AE;???????2 HCÆwzF°ØÏôuªVv`X ??ßiôÚ'Oõºî〜H4 ·2 |庫地|?iù³IA〜¾[ÓmQÙHãÞ¸÷OW /#ï¾ÄÀI |??????PO AL8〜dÂñ3??L8N3áøCY &¿3AA \ @rITK¤\2UäªT¹ÄªÈ%WAW + d© 9 :? [

我認爲這是對輸出文件的打印機。

需要發omehow淘汰什麼我打電話垃圾話。它不需要是完美的。該計劃是爲了紀念與不包含在索引中,因此用戶手動審查一種簡單的方法垃圾詞的文檔。

我可能最終從安全字符(A,B,C,...)的名單做計數的什麼。喜歡的話必須有一個或不是char更安全的1/2字符,以保持安全。就像我想保持咖啡廳。垃圾話往往是所有輔助。這是一個次要ª'_LLýú詞,恰好有一些安全的字符。

在這一點上,我評估戰場。

業務的性質可能有意就被送進垃圾文件。

萬一有人關心我

rSafeChar = new Regex(@"[-_'@A-Za-z0-9]");

safeCharCount > unsafeCharCountsafeCharCount >= unsafeCharCount

+1

只是好奇,一個爲什麼要這麼做? –

+2

什麼意思enumarate所有的值? \ W相當於 「[A-ZA-Z0-9_]」 – Eregrith

+1

有48745個字符'\ W'在0-65535的範圍內匹配(所有可能的UTF-16字符)。他們全部有效嗎? (74%) –

回答

2

玩弄去檢查什麼可通過\匹配w的一種可以使用包含整個ASCII表,並使用一個字符串下面的正則表達式:

(?:(?<wmatch>\w)*(?<wnotmatch>[^\w]*))* 

所產生的羣體應該那些燒焦的列表acters匹配,採用\ W不匹配。

下面是一個例子:

private void TestMatch() 
{ 
    string ascii = "[email protected]_$14-195djsjfke1058446541"; 
    Regex r = new Regex(@"(?:(?<wmatch>\w)*(?<wnotmatch>[^\w]*))*"); 
    Match m = r.Match(ascii); 
    if (m.Success) 
    { 
    string msg = "\\w matches :"; 
    foreach (Capture cap in m.Groups["wmatch"].Captures) 
    { 
     msg += cap.Value + ", "; 
    } 
    msg += Environment.NewLine + "\\w does not match: "; 
    foreach (Capture cap in m.Groups["wnotmatch"].Captures) 
    { 
     msg += cap.Value + ", "; 
    } 
    MessageBox.Show(msg); 
    } 
} 

表演:

\\w matches :a, b, c, d, e, f, 0, 9, 3, 4, _, 1, _, 1, 4, 1, 9, 5, d, j, s, j, f, k, e, 1, 0, 5, 8, 4, 4, 6, 5, 4, 1, 
\\w does not match: +, !, @, $, -, " 
+0

Unicode的,但我會試試這個 – Paparazzi