有下文本文件,内容如下
不确定行数内容1.abc不确定行数内容2.dsfs
学号|姓名|成绩
001|学生1|91
002|学生2|92
003|学生3|93
要获取其中的内容信息,如下
001|学生1|91
002|学生2|92
003|学生3|93其中,学号|姓名|成绩 这个标题是有的,但不确定从哪一行开始(因为标题上面有不确定行数的内容)
另外,在最后一行,有可能没有换行符\r\n。我想这样写
(.*学号\|姓名\|成绩\r\n)?(?<key>.+?)\r\n
但存在两个问题:
1.学号前面的不确定内容如何写.*好像不行
2.最后的换行符有可能不存在,于是我写
(.*学号\|姓名\|成绩\r\n)?(?<key>.+?)(\r\n)?
可是也不正确。
请问如何写,谢谢!
不确定行数内容1.abc不确定行数内容2.dsfs
学号|姓名|成绩
001|学生1|91
002|学生2|92
003|学生3|93
要获取其中的内容信息,如下
001|学生1|91
002|学生2|92
003|学生3|93其中,学号|姓名|成绩 这个标题是有的,但不确定从哪一行开始(因为标题上面有不确定行数的内容)
另外,在最后一行,有可能没有换行符\r\n。我想这样写
(.*学号\|姓名\|成绩\r\n)?(?<key>.+?)\r\n
但存在两个问题:
1.学号前面的不确定内容如何写.*好像不行
2.最后的换行符有可能不存在,于是我写
(.*学号\|姓名\|成绩\r\n)?(?<key>.+?)(\r\n)?
可是也不正确。
请问如何写,谢谢!
解决方案 »
- 如果将代码段添加到外侧代码里
- RSACryptoServiceProvider对xml加密解密的问题
- c# 中的路径问题
- 写了一个控制台应用程序,现在想站他每天凌晨1点运行一次。应该怎么样写
- C#的数据转换,那位有呀??资源全的
- vs2008 c# 如何用代码实现查找到硬盘上某一个exe文件的路径?
- 请教 C# 中一个基本的数据处理问题
- 谁能够提供给偶vs.net 2003中文企业版第二张盘下载,安装验证通过立即给分!
- 我使用XP,安装IIS和.NET后,没有任何设置,用IE浏览,127.0.0.1时候,为啥老是弹出一个登录窗口???请高手指教
- vb.net与C#做的二个项目,如何共享session?
- C# 如何实现Delphi中的or 运算
- C#如何通过线程号获取线程
那如果正好学号与成绩也是字符串的,那么我需要改成
(.+)\|(.+)\|(.+)
这时,会把标题也匹配下去,该怎样处理?谢谢!
另外,上面的表达式,假设了列数是固定的。如果是不固定的呢?
但是也不能排除表头前面的内容包含匹配的内容
所以最好是一行一行读
using(var sr = new StreamReader(path))
{
bool start = false;
while((line=sr.ReadLine()) != null)
{
if(!start)
{
if(line=="学号|姓名|成绩") start = true;
continue;
}
var items = line.Split('|');
string sn = items[0]...
}
}
不一定非要用正则