Wort hinter punkt auslesen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von oxDarkxo.

    Wenn es falsch sein sollte, bitte korrigieren, da ich wie gesagt erst mit RegEx anfange.[/quote]

    Ich denke du hast mich falsch verstanden ^^
    Ich möchte nur in der aktuellen Zeile in der ich schreibe eben prüfen was vor dem Punkt steht aber wenn da bereits etwas hinter dem Punkt steht soll diese Funktion diesen so zu sagen Ignorieren ;)

    Sinnlose Vollzitate entfernt.
    - Solaris

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

    Ich denke du hast den Code nicht ausprobiert, denn genau das passiert. Das $ sagt, dass der String (oder die Zeile) dort enden muss. Bedeutet dass er nichts zurückgibt wenn nach dem Punkt noch was kommt.
    Doch ich habe den Code probiert nur ließt dieser wenn er denn so funktionieren sollte anscheinend auch noch die nächsten zeilen mit und nicht nur die aktuelle Zeile der Rtb. :S

    Bitte hör auf den Beitrag direkt vor dir zu Zitieren!

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

    @oxDarkxo Ich hab mich jetzt überreden können, dir deinen Code zusammenzuzimmern.

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions 'RegEx bereitstellen
    2. Public Class frmMain
    3. Private Sub btnFilter_Click(sender As Object, e As EventArgs) Handles btnFilter.Click 'Wann auch immer, hier jetzt halt beim Button-Click
    4. Dim Matches As MatchCollection 'MatchCollection für die gefundenen Wörter
    5. If rtbInput.Text.Length > 0 Then 'Damit es nicht abstürzt, wenn du nichts eingibst
    6. Matches = Regex.Matches(rtbInput.Lines(rtbInput.GetLineFromCharIndex(rtbInput.GetFirstCharIndexOfCurrentLine)), "([^\.\s]+)\.$", RegexOptions.Singleline) 'Hier ließt er jetzt aus der Zeile in der der Cursor ist alle Wörter, die auf das RegEx-Pattern passen, aus.
    7. Else 'Ansonsten...
    8. Exit Sub '...brechen wir ab weil Matches ja sonst leer ist.
    9. End If
    10. If Matches.Count > 0 Then 'Wenn wir ein Wort gefunden haben...
    11. MessageBox.Show(Matches(0).Value.Replace("."c, "")) '...zeigen wir es hier halt in einer MessageBox. Oder du machst was auch immer damit.
    12. End If
    13. End Sub
    14. End Class

    Beachte dass $ im Pattern und Singleline als Suchmodus. Damit wird nur das Wort vor dem Punkt gefunden, wenn nach dem Punkt nichts mehr kommt. So wie hier:

    oxDarkxo schrieb:

    Es. << Hier soll mir das Programm "Es" rausfiltern.
    Es. War einmal << hier soll die funktion nichts machen.

    ...gewünscht.

    Das Singleline könnte man sich eigentlich sparen, da rtbInput.Lines(rtbInput.GetLineFromCharIndex(rtbInput.GetFirstCharIndexOfCurrentLine)) eh nur die aktuelle Zeile darstellt aber sicherheitshalber...

    Ich hoffe dir ist damit geholfen, und ich hoffe du verstehst den Code anhand der Kommentierungen.