我习惯于使用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
答案 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`