c# - 如何通过字符串中的单个单词匹配来提取整个句子?

标签 c# .net regex string text-segmentation

所以我有一个完整的字符串(大约 10k 个字符),然后在该字符串中搜索一个单词(或多个单词)。使用regex(word).Ma​​tches(scrappedstring)

但是如何提取包含该单词的整个句子。我正在考虑在搜索的单词后面取一个子字符串,直到第一个点/感叹号/问号/等。但是如何取出搜索词之前的句子部分呢?

或者也许有更好的逻辑?

最佳答案

如果你的界限是,例如.!?;,匹配 [^.!?;] 中的所有句子*(wordmatch)[^.!?;]* 表达式。 它将给出所有包含所需单词匹配的句子。

示例:

var s = "First sentence. Second with wordmatch ? Third one; The last wordmatch, EOM!";
var r = new Regex("[^.!?;]*(wordmatch)[^.!?;]*");
var m = r.Matches(s);

var result = Enumerable.Range(0, m.Count).Select(index => m[index].Value).ToList();

关于c# - 如何通过字符串中的单个单词匹配来提取整个句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521057/

相关文章:

java - 获取某个正则表达式中字符串的值

php - 使用 REGEXP 更新和更改数据库中的 WordPress URL

c# - Unity3D - 使用 Time.deltaTime 作为协程的等待时间

c# - 在 Azure DevOps 中运行时,.Net/VS 测试运行器失败

.net - 如何在LINQ中向实体进行LEFT JOIN?

c# - 我们可以在 ASP.NET 中为 pagemethod 和 webmethod 使用相同的数据表吗?

c# - 用于跨平台开发的单声道资源

regex - 我该如何为此编写正则表达式...?

c# - 来自 AForge FFMPEG 的图片框为空 - C#/WinForms

c# - MongoDB C# 驱动程序 - POCO 引用的序列化?