Nach zeichnenfolge in string suchen & dann markieren bis zu nexter zeichenfolge?

  • VB.NET

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von hmatrix2.

    Nach zeichnenfolge in string suchen & dann markieren bis zu nexter zeichenfolge?

    Hallo

    Ich habe einen string der ewig lang ist und in diesem sollte nach einer zeichenfolge gesucht werden, wenn sie gefunden wurde soll von ende dieser zeichenfolge bis zur nexten alles markiert werden und in eine neue variable geschreiben werden.


    beispiel

    <html>Text der herausgefischt werden soll</html>

    hmatrix2 schrieb:

    mensch das was mir oli-f gepostet hat funktioniert nicht ganz es kommt dann wenn ich "Text" in ein label schreibe kommt html>Text der herausgefischt werden soll
    als ausgabe raus, wo ist der fehler?


    habe es 1:1 kopiert


    Ich hatte wirklich vor, dir hilfreich und ernst zu antworten, aber dir scheinen weder die Grundlagen noch logisches Denken geläufig zu sein :thumbdown:
    Nur Copy&Paste wird hier a) nicht gern gesehen und hat b) auch keinen Sinn. Wie du siehst.

    Lern die Grundlagen, Kollege.

    MfG,
    X-Zat / Momo
    sry ich möchte mich entschuldigen


    ps ich habs zur kontrolle per copy und paste gemacht, weil meine umformung schon nicht funktioniert hat, dann dachte ich mir vllt ist es was bei meinem "grund" code

    ich verstehe auch nicht sehr viel von der split funktion, also könntest du mir das mal erklären und vllt auch gleich zeigen wie ich das in meinen fall anwende??
    Ok, kein Problem.

    Die Split-Funktion

    Die Split-Funktion kann Zeichenketten (Strings) einteilen (engl. "to split" ~ "teilen"). Dazu wird dann ein Trennzeichen als Parameter angegeben.
    Beim Splitten erhälst du eine Auflistung (Array) aller Teile des geteilten Strings, die du durch einen Index angeben kannst. In VB ist der Index ein Wert, der eine Position angibt und es wird von 0 an aufwärts gezählt (0,1,2,3,...).
    Ein Beispiel sähe so aus:

    VB.NET-Quellcode

    1. Dim TestString As String = "Mein Haus, meine Frau, meine Yacht!"
    2. Dim Teile() As String = TestString.Split(",") 'TestString ist als Auflistung des Datentyps String deklariert und erhält hier die einzelnen Teile des Splits
    3. MessageBox.Show(Teile(0)) 'Gibt "Mein Haus" aus (der erste Teil der Auflistung, also Index 0!)
    4. MessageBox.Show(Teile(1)) 'Gibt " mein Frau" aus (der zweite Teil der Auflistung, also Index 1!)
    5. MessageBox.Show(Teile(3)) 'Gibt " meine Yacht!" aus (der dritte Teil der Auflistung, also Index 2!)
    6. 'Auch das funktioniert:
    7. Messagebox.Show(TestString.Split(",")(0)) 'Gibt "Mein Haus" aus
    8. 'Das Prinzip ist also:
    9. MessageBox.Show(String.Split("Trennzeichen")(Index))


    Bei dir musst du nur das Trennzeichen und den zu teilenden String ändern und kannst deinen Code folglich nutzen.

    MfG,
    X-Zat / Momo

    VB.NET-Quellcode

    1. Dim DeinString As String = "Text der herausgefischt werden soll" Dim Text As String = DeinString.Split("")(1) label1.text = Text



    ergebinss= html>Text der herausgefischt werden soll

    ich verstehs nicht normal müste ja jetzt "Text der herausgefischt werden soll" herauskommen

    oder hab ich da was missverstanden, mir scheint so als würde mein programm nur von "<" weg bis hin zu "" gehen


    EDIT /// achso es nimmt immer nur das erste zeichen als trennzeichen, wie kann ich dan ein Trennwort benutzen??

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hmatrix2“ ()

    Mh, gib mal bitte den kompletten Text, und sag uns dann, welche Zeichenfolge davon rausgesucht werden soll. Und dann eben, ob nur die erste gefundene oder direkt alle.



    link_275
    Hello World
    ne ich meine es wird nicht nach dem ganzen word gesucht!!!


    EDIT// habs so gemacht

    VB.NET-Quellcode

    1. Dim DeinString As String = "Text der herausgefischt werden soll"
    2. Dim Texta() As String = Split(DeinString, "") Dim Text() As String = Texta(1).Split("Label1.Text = Text(0)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hmatrix2“ ()

    ähm ich suche auf einer webseite das was zwischen den beiden strings ist, hab ich ja schon oben gepostet meine lösung


    habe jetz aber folgendes problem!!

    ich habe das wonach ich suche("<td class="td-file">") öffters drinnen, durch meine lösung wird nur der 1ste ausgelesen, wie schaffe ich es alle auszulesen?
    [VB 2008] RegEx Tutorial - Blutige Anfänger und Fortgeschrittene

    Mein RegEx Tutorial, sogar mit Codebeispiel, im Endeffekt nur noch C&P ^^ have fun
    Tipp: Matchcollection ;)



    link_275 :thumbup:
    Hello World
    Split ist quatsch bei dem was du vorhast. Mh ja, das ist verständlich. Ich meine, du hast dir das Tutorial nun ganze 8 Minuten angesehen ... :thumbdown: :thumbdown: :thumbdown:
    Echt wenn du kein Bock hast lebst mal was zu lernen, kannst dir deine Hilfe woanders suchen. Das ist C&P, mehr nicht. Versuchs doch mal mit Kopf einschalten, soll beim programmieren gar nicht so schlecht sein :pinch: :pinch:

    mir wayne wie du das jetzt machst, du hast alles was du brauchst...



    link_275
    Hello World
    Joa, anschauen und lesen und versuchen zu verstehen was man liest sind 2 verschiedene Sachen.

    however, check this:test.rar

    Code dafür ist dieser:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Public Class Form1
    3. Sub FilterExpr(ByVal pattern As String)
    4. Dim Results As New List(Of String)
    5. Dim Curr As String = ""
    6. ListBox1.Items.Clear()
    7. Dim MC As MatchCollection
    8. MC = Regex.Matches(RichTextBox1.Text, pattern, RegexOptions.IgnoreCase)
    9. For i As Integer = 0 To MC.Count - 1
    10. If Results.Contains(MC(i).Value) = False Then
    11. Curr = MC(i).Value.ToString
    12. ListBox1.Items.Add(Curr)
    13. End If
    14. Next
    15. End Sub
    16. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    17. FilterExpr(TextBox1.Text)
    18. End Sub
    19. End Class




    Sollte geh'n



    link_275
    Hello World
    achso :thumbsup:
    aber noch ne frage, habs jetzt schon versucht, aber ich brauche ja nicht den string den ich da suche ein paar mal(wäre ja auch unlogisch, da es ja immer der gleiche ist) sondern ich brauche die zeichen die sich von diesem bis zum </ br> befinden!!

    wie mach ich das nun???
    okay, scheint ja ne html seite zu sein, richtig? Dann poste mal ein paar Zeilen dieses Quelltextes und markiere den Bereich, den du von dort haben möchtest (mach ihn fett oder andere Farbe, irgendwas halt) damit Ich sehen kann, was genau du haben magst.




    link_275
    Hello World