VB.NET在多个引用之间获取文本

VB.NET在多个引用之间获取文本,vb.net,Vb.net,我需要一些帮助 我需要在multi-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 lin

我需要一些帮助

我需要在multi-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
感谢您的帮助:)

Regex-Match 什么是正则表达式:

"(.*?)"
(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"
正则表达式是正则表达式引擎试图在输入文本中匹配的模式。模式由一个或多个字符文本、运算符或构造组成

资料来源:

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

"(.*?)"
(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"
解释如下:

复杂的一个:

"(.*?)"
(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"
下面是一个解释:


VB.NET实现 这将是一份工作,工作方式如下:

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
正则表达式匹配 什么是正则表达式:

"(.*?)"
(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"
正则表达式是正则表达式引擎试图在输入文本中匹配的模式。模式由一个或多个字符文本、运算符或构造组成

资料来源:

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

"(.*?)"
(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"
解释如下:

复杂的一个:

"(.*?)"
(["'])(?:(?=(\\?))\2.)*?\1"(.*?)"
下面是一个解释:


VB.NET实现 这将是一份工作,工作方式如下:

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

只需使用正则表达式匹配:
([“'))(?:(?=(\\?))\2.*?\1
或更简单的版本:
”(.*)“
是否尝试从应用程序调用语句中删除命令参数?它们将以空格分隔,不必总是用引号括起来。但是,如果您只想要那些是,请拆分字符串,使用空格作为分隔符,然后比较数组中以双引号开头和结尾的项。@Mike我不建议对此类操作进行拆分,因为这是不可靠的。@Mederic实际上您是对的,如果路径名包含空格,它们将被分割,很好的回答。@Mike没问题,我花了一段时间才摆脱拆分为正则表达式的习惯,更经常地使用正则表达式匹配:
([“'))(?:(?=(\\?))\2.*?\1
或更简单的版本:
”(.*)“
是否尝试从应用程序调用语句中删除命令参数?它们将以空格分隔,不必总是用引号括起来。但是,如果您只想要那些是,请拆分字符串,使用空格作为分隔符,然后比较数组中以双引号开头和结尾的项。@Mike我不建议对此类操作进行拆分,因为这是不可靠的。@Mederic实际上您是对的,如果路径名包含空格,它们将被分割,很好。@Mike没问题,我花了一段时间才不再经常使用split到regex hahahow我可以把3个结果放在3个不同的文本框中吗?@pakeerathanarumainayagam如果你不知道如何将字符串写入文本框,我们不是来为你编写整个程序的。我建议你在复制粘贴之前开始学习基本知识:我怎么能在3个不同的文本框中获取3个结果?@pakeerathanarumainayagam如果您不知道如何将字符串写入文本框,我们不是来为您编写整个程序的。我建议您在复制粘贴之前开始学习基本知识: