所以我有一个完整的字符串(大约 10k 个字符),然后在该字符串中搜索一个单词(或多个单词)。使用regex(word).Matches(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/