Between Funktion richtig suchen lassen

  • VB.NET
  • .NET 4.5

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von petaod.

    Between Funktion richtig suchen lassen

    Guten Tag,

    ich habe eine Funktion im Internet gezogen, um in einem String zwischen zwei Strings den Text herauszubekommen. Das Problem an dieser Funktion ist, dass sie nicht ganz das tut, was ich möchte. Erstmal hier der Code:

    VB.NET-Quellcode

    1. Function Between(value As String, a As String, b As String) As String
    2. 'Value = Source(der String)
    3. 'a = Wo soll der String beginnen, denn du haben möchtest?
    4. 'b = Wo endet der String?
    5. ' Get positions for both string arguments.
    6. Dim posA As Integer = value.IndexOf(a)
    7. Dim posB As Integer = value.LastIndexOf(b)
    8. If posA = -1 Then
    9. Return ""
    10. End If
    11. If posB = -1 Then
    12. Return ""
    13. End If
    14. Dim adjustedPosA As Integer = posA + a.Length
    15. If adjustedPosA >= posB Then
    16. Return ""
    17. End If
    18. ' Get the substring between the two positions.
    19. Return value.Substring(adjustedPosA, posB - adjustedPosA)
    20. End Function


    Die Funktion macht folgendes:
    Syntax: Between(text, "Hallo", "toll")
    Hallo, ich bin super toll und du bist toll und deine Eltern sind toll und toll ist dieses Beispiel ebenfalls.

    Was ich jedoch möchte:
    Hallo, ich bin super toll und du bist toll und deine Eltern sind toll und toll ist dieses Beispiel ebenfalls.

    Kurz: Er soll mir direkt beim ersten "toll" den String zwischen a und b geben.

    Ich habe bisher einiges probiert, jedoch verstehe ich den Codeschnipsel nicht wirklich. Hoffentlich kennt ihr eine Antwort.

    EDIT:\\
    Ich bin dämlich. Ich weiß nicht, wieso mir das nicht aufgefallen ist, aber für b wird der LastIndex genommen. Habe es umgeschrieben, nun funktioniert es. Ich sehe sowas halt echt nur dann, wenn ich es schon gepostet habe eh.
    Wenn ich eine Frage stelle, habe ich sie bereits gegooglet. Ja, es kommt vor, dass ich die Antwort übersehe. Ja, es kommt vor, dass ich sie nicht verstehe. Deshalb bin ich hier. Wenn dies eure Frage war, dann antwortet bitte nicht. Es stiehlt sämtliche Motivation.