有下文本文件,内容如下
不确定行数内容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)?
可是也不正确。
请问如何写,谢谢!
解决方案 »
- 在ToolStripStatusLabel上显示程序运行时间。
- 在DataGridView里怎么获取当前点击的单元格的X和Y坐标?
- 怎样使选择DataGridView一整行的数据显示在文本框里面呢?
- excel导入问题
- 急,C#中 关于引入EXCEL.dll的问题
- C#的学习路程
- 打算用c#写一个程序,当有其他用户进入我的界面时,可以报警通知我。
- 请高手来帮帮忙,是有关将excel数据库中的数据库导入到sqlserver中去的问题.....
- 弹出的messagebox如何控制其只能在某个位置,不能移动
- Dotnetfx.exe 怎么样和安装程序一起重新发布???
- 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]...
}
}
不一定非要用正则