Ric*_*d N 11 c# regex split words sentence
我已经看到了一些类似的问题,但我正在努力实现这一目标.
给定一个字符串,str ="月亮是我们的天然卫星,即它围绕地球旋转!" 我想提取单词并将它们存储在一个数组中.预期的数组元素就是这样.
the
moon
is
our
natural
satellite
i.e.
it
rotates
around
the
earth
Run Code Online (Sandbox Code Playgroud)
我尝试使用String.split(','\ t','\ r'),但这不能正常工作.我也尝试删除.和其他标点符号,但我想要一个像"ie"这样的字符串也要解析出来.实现这一目标的最佳方法是什么?我也尝试使用regex.split无济于事.
string[] words = Regex.Split(line, @"\W+");
Run Code Online (Sandbox Code Playgroud)
肯定会欣赏正确方向的一些推动.
The*_*ing 31
正则表达式解决方案.
(\b[^\s]+\b)
Run Code Online (Sandbox Code Playgroud)
如果你真的想修复,去年.上i.e.,你可以用这个.
((\b[^\s]+\b)((?<=\.\w).)?)
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码.
var input = "The moon is our natural satellite, i.e. it rotates around the Earth!";
var matches = Regex.Matches(input, @"((\b[^\s]+\b)((?<=\.\w).)?)");
foreach(var match in matches)
{
Console.WriteLine(match);
}
Run Code Online (Sandbox Code Playgroud)
结果:
Run Code Online (Sandbox Code Playgroud)The moon is our natural satellite i.e. it rotates around the Earth
我怀疑你正在寻找的解决方案比你想象的要复杂得多.您正在寻找某种形式的实际语言分析,或者至少是字典,以便您可以确定句点是单词的一部分还是结束句子.你有没有考虑过它可以同时做到这两件事?
考虑添加允许的"包含标点符号的单词"的字典.这可能是解决问题的最简单方法.
| 归档时间: |
|
| 查看次数: |
26410 次 |
| 最近记录: |