2013-09-27 115 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` 
相關問題