VB.NET在多个报价之间获取文本

时间:2017-05-31 12:32:12

标签: vb.net

我需要一些帮助。

我需要在多个textbox1,textbox2,textbox3上的Quot(“”)上获得文本文件值。但只能获得价值(textbox1上的第一个值)

现在我只得到一个值(Quot上的第一个值)

文本文件(2.txt):  C:\ contexture \ img2itp.exe“\ mynetwork \ 1.png”“\ mynetwork \ 2.png”“148”

代码vb:

Using sr As New StreamReader("C:\test\2.txt")
    Dim line As String
    ' Read the stream to a string and write the string to the console.
    line = sr.ReadToEnd()
    Dim s As String = line
    Dim i As Integer = s.IndexOf("""")
    Dim f As String = s.Substring(i + 1, s.IndexOf("""", i + 1) - i - 1)

    TextBox1.Text = f

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

正则表达式匹配

什么是正则表达式:

  

正则表达式是正则表达式引擎尝试在输入文本中匹配的模式。模式由一个或多个字符文字,运算符或构造组成。

来源:https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx

在这里,我们可以考虑使用两个正则表达式来解决这个问题的简单版本和更复杂的创建捕获组。

简单的一句:

(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"

以下是解释:https://regex101.com/r/mzSmH5/1

复杂的一个:

Dim value As String = IO.File.ReadAllText("C:\test\2.txt")
Dim matches As MatchCollection = Regex.Matches(value, """(.*?)""")
' Loop over matches.
For Each m As Match In matches
    ' Loop over captures.
    For Each c As Capture In m.Captures
        ' Display.
        Console.WriteLine("Index={0}, Value={1}", c.Index, c.Value)
    Next
Next

以下是解释:https://regex101.com/r/7ZMVsB/1

VB.NET实施

这将是Regex.Matches的工作,其工作原理如下:

VLOOKUP