8
votes

Comment puis-je obtenir les personnages entre 2 autres caractères?

J'ai une chaîne qui, à un moment donné, contient l'ensemble de caractères dans le format suivant [123] .

Ce que je voudrais faire, c'est obtenir les caractères entre [] mais les caractères entre les deux n'ont jamais la même longueur.

Comment irai-je à ce sujet dans vb.net?


0 commentaires

6 Réponses :


-1
votes

Vous pouvez faire quelque chose comme ça ..

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


4 commentaires

L'OP a une chaîne "qui à un moment donné" ces personnages. Ils ne constituent pas la chaîne entière.


Son suffisamment sensible pour remplacer S avec la variable de chaîne que l'OP a.


Et puis votre code ne fonctionnera pas. Par exemple, si la chaîne de l'OP est "FOO [123] bar" .


OP n'a jamais mentionné quoi que ce soit à ce sujet. Il a seulement mentionné la longueur des caractères entre les crochets.



19
votes
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)

3 commentaires

La chaîne que je passe spécifiquement tandis que le débogage est nav [1] = root , mais lors de l'utilisation ci-dessus, f est renvoyé comme [1] = ro < / code>. Ai-je fait une erreur?


Essayez ceci .. S.Substring (i, S.Length - (i + s.indexof ("]", i + 1)))


@Liam: Désolé, mon erreur. Corrigé maintenant.



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

0 commentaires

0
votes

Vous pouvez utiliser une expression régulière.

    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 commentaires

0
votes

L'énoncé regularexpressions.regex ("\ [([[^ \]] *) \]") retourne la valeur à l'intérieur du support et le support!

J'ai utilisé cette déclaration pour renvoyer l'iPaddress entouré de () à l'intérieur de la chaîne longue: - xxx


0 commentaires

0
votes

Ma solution:

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


0 commentaires