如何获取2个字符串之间的字符串

时间:2013-09-27 08:32:23

标签: vb.net vb6 split

我习惯于使用split方法进行VB6,如下所示:

Split(Split(strLOL,strCool)(1),strCOOL)(0)

有了这个,我就能抓住一个介于2个字符串之间的字符串。

"en_us":"hi",

strLOL例如:"en_US":"strCool",

所以它会抓住这两者之间的字符串。

我怎样才能在VB.NET中做到这一点?

修改:让我直截了当。 "en_us":"hi",是我在文本中的字符串 file ...我有一个包含"en_us":"hi",的文本框,我想抓住

之间的一切
  • "en_us":"
  • ",

所以期望的结果是:hi

2 个答案:

答案 0 :(得分:1)

  

让我直截了当地说。 “en_us”:“hi”,是我在文本中的字符串   file ...我有一个包含的文本框:"en_us":"hi",我想抓住   "en_us":"",之间的所有内容因此响应将是:hi

如果要在两个其他子字符串之间返回字符串,可以在.NET中使用String.Substring。您可以使用String.IndexOf来查找子字符串的索引:

Dim str = IO.File.ReadAllText(pathToTextFile) '  "en_us":"hi",
Dim grabBetween1 = """en_us"":"""
Dim grabBetween2 = ""","
Dim indexOf = str.IndexOf(grabBetween1)

Dim result As String
If indexOf >= 0 Then ' default is -1 and indices start with 0
    indexOf += grabBetween1.Length ' now we look behind the first substring that we've already found
    Dim endIndex = str.IndexOf(grabBetween2, indexOf)
    If endIndex >= 0 Then
        result = str.Substring(indexOf, endIndex - indexOf)
    Else
        result = str.Substring(indexOf)
    End If
End If

结果是:hi

如果您坚持使用String.Split或者想要查看.NET中的等价物,那么它就是:

Dim result = str.Split({grabBetween1}, StringSplitOptions.None)(1).Split({grabBetween2}, StringSplitOptions.None)(0)

也返回hi。但是,这样可读性较差,容易出错,效率较低。

答案 1 :(得分:0)

如果使用:

,您将获得正确的结果
Dim str = """en_us"":""hi"","   ' This outputs a string with the value `"en_us":"hi",`
Console.WriteLine(str.Split("""")(2)) ' This will get you the string `hi`