我有一个包含多个空行的文本文件,我尝试返回其中两行之间的所有行
因此,如果我有一个如下所示的文件:
____________________________
1########################
2##########################
3
4########################
5##########################
6#######################
7
8#########################
9##########################
10#######################
11####################
12########################
13#########################
14
15##########################
----------------------------
我想坐8-13号线。不幸的是,它可能不会总是8-13,因为它可能是9-20或7-8,但它将总是在第二和第三线休息之间。
我知道如何裁剪字符和提取单行,但我不知道如何裁剪整个部分。
任何帮助都将不胜感激,即使你只是给我介绍了一个教程。
提前谢谢。
发布于 2012-04-10 23:58:14
我最终做的是修剪最后一部分,并在第一部分中搜索我需要的内容(我知道我没有在问题中包括搜索部分,但我只是想找出一种方法来缩小搜索结果的范围,因为它会有重复的结果)。我张贴这篇文章,以防其他人偶然发现这篇文章,寻找一些答案。
Dim applist() = System.IO.File.ReadAllLines("C:\applist.txt")
Dim findICSName As String = "pid"
Dim ICSName As New Regex("\:.*?\(")
Dim x = 0
Do Until applist(x).Contains("Total PSS by OOM adjustment:")
If applist(x).Contains(findICSName) Then
app = ICSName.Match(applist(x)).Value
app = app.TrimStart(CChar(": "))
app = app.TrimEnd(CChar("("))
ListBox1.Items.Add(app)
End If
x = x + 1
Loop
End If
它的工作原理是遍历正则表达式的每一行,直到到达断点"Total PSS by OOM adjustment:“中的第一个单词。
发布于 2012-01-05 08:13:49
这里的基本思想是将整个内容作为字符串,在两个换行符处将其拆分成组,然后引用所需的组(在本例中是第三个)。
Dim value As String = File.ReadAllText("C:\test.txt")
Dim breakString As String = Environment.NewLine & Environment.NewLine
Dim groups As String() = value.Split({breakString}, StringSplitOptions.None)
Dim desiredString As String = groups(2)
MsgBox(desiredString)
编辑:在回答您的评论中的问题-
Environment.NewLine是一种更动态的指定换行符的方式。假设你在windows上运行,你也可以使用VbCrLf。这个想法是,如果你要在Linux上编译同样的代码,它会Environment.NewLine生成一个Lf。你可以在这里看到更多信息:http://en.wikipedia.org/wiki/Newline
我使用Environment.NewLine & Environment.NewLine
的原因是因为您希望在有两个换行符的地方中断信息(一个在段落最后一行的末尾,另一个用于下一段之前的空行)。
https://stackoverflow.com/questions/8735826
复制相似问题