String umwandeln, Konvertierung durch Regeln



  • Hallo,

    ich bin neu hier und hab folgendes Problem:

    der Benutzer soll einen Text eingeben können auf die Eingabewörter/ Eingabewort sollen spezieffische Regeln angewendet werden

    z.B. die Regel taXsYe -> YoX

    Eingabe: tasse
    Ausgabe: so os

    Eingabe: tasse tasse
    Ausgabe: so os so os

    Eingabe: test
    Ausgabe: _

    Wer kann mir helfen wie ich hier überhaupt ran gehen muss. Vielen Dank schon mal.



  • Es gibt "Wildcard"-Algorithmen, mit denen du prüfen kannst, ob ein Wort mit einem Muster übereinstimmt, z.B. wie bei einer Dateisuche "*.txt". Evtl kannst du dir so einen Algorithmus suchen und so modifizieren, dass die Sternchen-Stellen nicht einfach übersprungen, sondern in einer bzw mehreren Variablen gespeichert werden.
    Im zweiten Schritt musst du die Variablen in den zweiten String (hier "YoX") einsetzen.

    edit: Oder hab ich deine Anforderung falsch verstanden? Bei der Anwendung von "taXsYe" auf Tasse wäre doch X="s" und Y="" oder als zweite Möglichkeit X="" und Y="s". Dann musst du im ersten Schritt nicht nur die Variablen X und Y extrahieren, sondern auch noch alle Möglichkeiten. Dann weiß ich aber nicht, ob das mit einem "normalen" Wildcard-Algo noch hinhaut, musst du evtl mal probieren..



  • ja genau so soll das funktionieren, kann man das nicht selber schreiben? kann man nicht Teile aus einem String auslesen

    taXsYe

    kann man nicht danach suchen was an der Stelle X oder Y steht?
    es gibt hier natürlich zwei Möglichkeiten was das Ganze schwieriger macht

    X="s" und Y="" -> so
    X="" und Y="s" -> os

    P.S. von Wildcard-Algorithmen hab ich noch nie was gehört konnte in Netz auch nicht viel darüber finden



  • Such mal nach Regex oder Regular Expressions.



  • matze999 schrieb:

    P.S. von Wildcard-Algorithmen hab ich noch nie was gehört konnte in Netz auch nicht viel darüber finden

    Bessere Suchbegriffe eingeben 😉 google.de -> wildcard match -> erster Link.
    Reguläre Ausdrücke sind natürlich auch ein möglicher Weg.


Anmelden zum Antworten