2012-12-26 988 views
0

Unicode具有字符類別。有些是字母數字。有些是標點符號。如何區分單詞字符和非單詞字符?

,如果我想知道一個詞是否屬於關鍵字或不

例如,

A,A,B,C,往往屬於話什麼。所以Ƈ,Ǝ,ǟ,所有的中文字都是。

這樣的句子

Hello World, I "like" (to) eat ƇƎǟ and 款開源 © 

有關鍵字:

Hello 
World 
I 
like 
to 
eat 
ƇƎǟ 
款 
開 
源 

這裏,(),©不是字的字符,因此應該只是被忽略和使用。

©也不算作標點符號。 '©'.IsPunctuation在vb.net中返回false,但我也想擺脫它。

現在我想製作一個程序,可以將句子拆分爲關鍵字。爲此,我需要知道哪些字符是單詞字符,哪些不是。

是否有一個vb.net函數呢?

回答

-2

u需要處理 「鍵碼」
一樣,如果只想要字母[AZ]
然後

 for(c>='a' && c<='z'){ 
     } 


 for(c>=97 && C<=122){ 
     } 
+0

我會避免這種情況。壓克力和漢字的數量太多了。 –

+1

問題是關於Unicode,你的回答不是。哦,並且語法無效。 –

1

做它反過來:使用IsLetter進行測試。或者更好的是,使用正則表達式用語言來分割你的字符串:

Dim str = "Hello World, I ""like"" (to) eat ƇƎǟ and 款開源 ©" 
Dim wordPattern As New Regex("\p{L}+") 

For Each match in wordPattern.Matches(str)) 
    Console.WriteLine(match) 
Next 

這裏,\p{L}任何單詞字符匹配。然而,由於字符之間沒有分隔符,因此上述匹配「款開源」的單個而不是單獨的匹配。

+0

以及如何知道某件事是否是字母? –

+2

@JimThio就像我說的:通過使用「IsLetter」而不是「IsPunctuation」。 –