1

我习惯了 VB6 使用 split 方法,如下所示:

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

有了这个,我能够抓住一个例如在 2 个字符串之间的字符串。

"en_us":"hi",

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

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

我怎么可能在 VB.NET 中做到这一点?

编辑:让我直截了当。"en_us":"hi",是我在文本文件中的一个字符串...我有一个文本框,其中包含"en_us":"hi",并且我想抓取两者之间的所有内容

  • "en_us":"
  • ",

所以想要的结果是:hi

4

2 回答 2

1

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

String.Substring如果您想在其他两个子字符串之间返回一个字符串,您可以在 .NET 中使用。您用于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。但是,这样的可读性较差,更容易出错且效率较低。

于 2013-09-27T09:12:34.490 回答
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`
于 2013-09-27T08:39:36.450 回答