2016-06-16 22 views
1

Ich muss Teilzeichenfolge aus einer Zeichenfolge suchen, und ich fragte mich, was der einfachste Weg ist, um darüber zu gehen. Ich suche hier nicht nach einer Kodierungslösung, sondern nach Ideen, d. H. Welchen Algorithmus ich verwende, wenn ich versuche, dies mit der Programmiersprache Scheme zu bewerkstelligen.Suchen von Zeichenfolgen innerhalb einer Zeichenfolge

Also lassen Sie uns sagen, ich habe die folgende Eingabe:

Pattern = Dieses ... Fuchs ist ein guter ... Haus Legion ... Stadt String = Diese quick brown fox ein guter Fuchs in der ist Haus des Hauses Legion in unserer großen Stadt

Ausgabe sollte (Liste der Listen):

((quick brown) (Fuchs im Hause) (in unserem großen))

Danke voraus.

+0

Mögliche Duplikate von [Wildcard String Matching] (http://stackoverflow.com/questions/2093426/wildcard-string-matching) –

Antwort

1

Diese Art der Sache würde am besten mit regulären Ausdrücken serviert. Racket Beispiel:

(regexp-match #rx"This (.*) fox is a good (.*) house of legion (.*) town" 
       "This quick brown fox is a good fox in the house of house of legion in our great town") 
=> ("This quick brown fox is a good fox in the house of house of legion in our great town" 
    "quick brown" 
    "fox in the house of" 
    "in our great") 

regexp-match Die Prozedur gibt eine Liste von Erfassungsgruppen (capture Gruppe 0 die gesamte Eingabezeichenfolge), oder wenn das Spiel #f fehlgeschlagen.

+0

Danke, ich weiß es zu schätzen. Wenn ich (. *) Funktionalität selbst implementieren muss, wie gehe ich dann vor? Alle Hinweise oder Links sind erwünscht. Danke im Voraus. – user151193

+0

Wie viel möchten Sie selbst tun? SRFI-13 hat 'string-contains', was den Index einer Teilzeichenkette zurückgibt. Wenn Sie das auch nicht verwenden möchten, können Sie immer eine eigene String-Index-Prozedur erstellen. Das sollte einfacher sein als die Implementierung regulärer Ausdrücke. –

Verwandte Themen