c# 怎样提取文本文档中多个指定的字段
比如一本小说,内容为第一章初始正文省略。。。。。。第二章开始正文。。。省略。。我想把第一章初始,第二章开始提取到一个数组或者其他的什么当中。。这个谁能告诉我详细的代码呢?...
比如一本小说,内容为
第一章 初始
正文 省略。。。。。。
第二章 开始
正文。。。省略。。
我想把
第一章 初始,第二章 开始 提取到一个数组或者其他的什么当中。。
这个谁能告诉我详细的代码呢? 展开
第一章 初始
正文 省略。。。。。。
第二章 开始
正文。。。省略。。
我想把
第一章 初始,第二章 开始 提取到一个数组或者其他的什么当中。。
这个谁能告诉我详细的代码呢? 展开
2个回答
展开全部
static class Program
{
public static string[] Split(string s, string[] keys)
{
List<string> contnets = new List<string>();
for (int i = 0; i < keys.Length; i++)
{
int index1 = s.IndexOf(keys[i]);
string c = s.Substring(0, index1);
if (!string.IsNullOrWhiteSpace(c))
{
contnets.Add(c);
}
s = s.Substring(index1);
}
if (!string.IsNullOrWhiteSpace(s))
{
contnets.Add(s);
}
return contnets.ToArray();
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
string s = @"第一章 初始
正文 省略。。。。。。
第二章 开始
正文。。。省略。。";
string[] keys = { "第一章 初始", "第二章 开始" };
string[] contnets = Split(s, keys);
}
}
更多追问追答
追问
关键是我不知道这个小说有多少章,每章名字是什么。。keys这个怎么获取?
追答
你试试这个吧
static class Program {
public static string[] Split(string s, string p)
{
List contnets = new List();
var m = Regex.Match(s, p);
while (m.Success)
{
var m2 = m.NextMatch();
if (!m2.Success)
{
break;
}
string c = s.Substring(m.Index, m2.Index - 1 - m.Index);
if (!string.IsNullOrWhiteSpace(c))
{
contnets.Add(c);
}
m = m2;
}
s = s.Substring(m.Index);
if (!string.IsNullOrWhiteSpace(s))
{
contnets.Add(s);
}
return contnets.ToArray();
}
static void Main()
{
string s = @" 第一章 初始
正文 省略。。。。。。
第二章 开始
正文。。。省略。。";
string[] contnets = Split(s, @"第[\S]{1,3}章");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询