2013-09-27 113 views
1

我所用的拆分方法如下面的用于VB6之间:如何抓住一个字符串,它是2个字符串

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

+0

我不明白。期望的结果是什么?一个字符串数组,其中第一个字符串是'en_US':',第二个字符串是','?什么是规则,什么是分隔符?为什么第一个'''被删除?使用编辑器中的代码按钮来格式化代码,不要使用'“”'因为它会修改输入的字符串。我们不知道你是否想告诉我们这是一个字符串,或者它是否是字符串的一部分。 –

+0

我认为它应该在vb.net中工作。你得到什么错误? –

+0

@Nadeem_MK:他问如何在VB.NET中做到这一点,那么.NET的方式是什么? –

回答

1

让我来确定一下。 “EN_US”:“喜”,是一个字符串我有一个文本文件 ......我有containts一个文本框:"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。但是,这不易读,更容易出错,效率也更低。

+0

我可以用这个与文本文件与多个相同的字符串,现在例如它只抓取第一个,但我可以让它循环通过整个文本框(多行)? –

+0

所以用户在'TextBox'的每一行都提供了两个字符串。他们是如何分开的? –

+0

嗯,让我说,我有一个文本文件的翻译。 在这里我的实习生,我们必须翻译这些manualy。 例如我复制到文本框中的文本文件,并希望抓住之间的所有字符串:“en_us”,“和”, –

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` 
相关问题