如何分隔单词字符和非单词字符?

时间:2012-12-26 07:11:30

标签: vb.net unicode

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 个答案:

答案 0 :(得分: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}匹配任何单词字符。但是,上述内容与中的“款开源”相匹配,而不是单独匹配,因为字符之间没有分隔符。

答案 1 :(得分:-2)

你需要处理“密钥代码”
就像你只想要字母[a-z]
然后

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


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