我需要通读文档以查找“苹果”一词的出现。找到“苹果”后,我需要返回包含该单词的整个段落。有没有办法在C#中做到这一点?可以做到吗?
当然,返回包含“ apple”的句子非常简单,但是我不确定要检索整个段落需要做什么。段落是否有可识别的分隔符,可以与正则表达式一起使用?
要重申:
答案 0 :(得分:1)
通常,句子之间用space
隔开,Regex
相当于\s
或carriage return line feed
(CRLF
)等于\r\n
有时一行也是一个\n
。
让我们假定段落由两个(或多个)CRLF
(或LF
)分隔。
拥有段落后,我们可以在这些段落中搜索所需的任何单词:
private static ArrayList paragraphs(string entireText)
{
char[] sep1 = new char[] { '\r', '\n', '\r', '\n' };
char[] sep2 = new char[] { '\n', '\n' };
string[] chunks = entireText.Split(sep1);
ArrayList paragraphs = new ArrayList();
foreach (string chunk in chunks)
{
string[] paras = chunk.Split(sep2);
foreach (string paragraph in paras)
paragraphs.Add(paragraph.Trim());
}
return paragraphs;
}
public static void Main()
{
string entireText = "your_text";
ArrayList paragraphs = paragraphs(entireText);
ArrayList containingWordList = new ArrayList();
foreach (String paragraph : paragraphs){
if (paragraph.Contains(word)) containingWordList.Add(paragraph);
}
}