私はある時点で、次の形式の文字セットを含む文字列を持っています[123]
。他の2文字間で文字を取得するにはどうすればよいですか?
私がしたいのは、[]
の間の文字を取得することですが、中間の文字は決して同じ長さにはなりません。
VB.NETでどうすればいいですか?
私はある時点で、次の形式の文字セットを含む文字列を持っています[123]
。他の2文字間で文字を取得するにはどうすればよいですか?
私がしたいのは、[]
の間の文字を取得することですが、中間の文字は決して同じ長さにはなりません。
VB.NETでどうすればいいですか?
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)
Dim s As String = "nav[1]=root"
dim result as String = s.Substring(s.IndexOf("[") + 1, s.IndexOf("]", s.IndexOf("[")) - s.IndexOf("[") - 1)
をあなたは正規表現を使用することができます。
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
声明RegularExpressions.Regex("\[([^\]]*)\]")
意志がブラケットそしてブラケット自己の内部の値を返します!
私は長い文字列の内側に囲まれたIPAddressを()を返すようにこの文を使用しています -
Dim IPRegEx As Regex = New Regex("(?<=\().*?(?=\))")
デバッグ中に渡される文字列は 'nav [1] = root'ですが、上記を使うと' f 'は '[1] = ro'として返されます。私は間違いを犯しましたか? – LiamGu
これを試してください。s.Substring(i、s.Length - (i + s.IndexOf( ")"、i + 1))) –
@Liam:申し訳ありませんが、私の間違いです。今修正されました。 – LukeH