2011-02-10 14 views

答えて

12
Dim s As String = "foo [123]=ro bar" 
Dim i As Integer = s.IndexOf("[") 
Dim f As String = s.Substring(i + 1, s.IndexOf("]", i + 1) - i - 1) 
+0

デバッグ中に渡される文字列は 'nav [1] = root'ですが、上記を使うと' f 'は '[1] = ro'として返されます。私は間違いを犯しましたか? – LiamGu

+1

これを試してください。s.Substring(i、s.Length - (i + s.IndexOf( ")"、i + 1))) –

+0

@Liam:申し訳ありませんが、私の間違いです。今修正されました。 – LukeH

0

あなたはこのような何かを行うことができます。..

Dim val As String = str.Substring(1, str.Length - 2) // replace str with your string variable 
+1

OPは*「いくつかの点で、」これらの文字を持つ文字列*を持っています。彼らは全体の文字列を構成しません。 – LukeH

+0

これは、sをOPが持つ文字列変数で置き換えるのに十分な意味があります。 –

+1

あなたのコードは動作しません。例えば、OPの文字列が* "foo [123] bar" *の場合。 – LukeH

0
Dim s As String = "nav[1]=root" 
dim result as String = s.Substring(s.IndexOf("[") + 1, s.IndexOf("]", s.IndexOf("[")) - s.IndexOf("[") - 1) 
0

をあなたは正規表現を使用することができます。

Dim s, result As String 
    Dim r As RegularExpressions.Regex 

    s = "aaa[bbbb]ccc" 
    r = New RegularExpressions.Regex("\[([^\]]*)\]") 

    If r.IsMatch(s) Then 
     result = r.Match(s).Value 
    Else 
     result = "" 
    End If 
0

声明RegularExpressions.Regex("\[([^\]]*)\]")意志がブラケットそしてブラケット自己の内部の値を返します!

私は長い文字列の内側に囲まれたIPAddressを()を返すようにこの文を使用しています -

Dim IPRegEx As Regex = New Regex("(?<=\().*?(?=\))") 
関連する問題