我试图使用正则表达式将句子/短语分成单词.
var phrase = "This isn't a test.";
var words = Regex.Split(phrase, @"\W+").ToList();
Run Code Online (Sandbox Code Playgroud)
单词包含"This","isn","t","a","test"
显然它正在捡起撇号并分裂.我可以改变这种行为吗?它还需要多语言支持各种语言(西班牙语,法语,俄语,韩语等).
我需要将这些单词传递给拼写检查程序.特别是Nhunspell.
return (from word in words let correct = _engine[langId].Spell(word) where !correct select word).ToList();
Run Code Online (Sandbox Code Playgroud)
Fra*_*ome 10
如果你想分成单词用于拼写检查,这是一个很好的解决方案:
new Regex(@"[^\p{L}]*\p{Z}[^\p{L}]*")
Run Code Online (Sandbox Code Playgroud)
基本上你可以使用以前的正则表达式使用Regex.Split.它使用unicode语法,因此它可以在多种语言中工作(但不适用于大多数亚洲语言).并且它不会破坏带有撇号或连字符的单词.
| 归档时间: |
|
| 查看次数: |
9867 次 |
| 最近记录: |