![]() |
Strings vergleichen-String Variabel, z.B.: "Auto(s)&quo
Hey,
ich möchte 2 Strings vergleichen, wobei einer der Strings auf eine bestimmte Weise variabel ist. So kann dieser String "Auto(s)" enthalten. Wird dies nun mit "Auto" oder "Autos" verglichen, soll beides True ergeben. Mehrere Klammern sind möglich, "(an)mutig(er)" würde zum Beispiel stehen für : "mutig", "anmutig", "mutiger" und "anmutiger". Das soll nach diesem System beliebig erweiterbar sein. Habt ihr da einen Ansatz? Wäre es mit regulären Ausdrücken lösbar?(Habe die noch nie benutzt) Danke schonmal! |
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Sollte mit regulären Ausdrücken machbar sein
|
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Was du vorhast klingt eher nach
![]() |
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Nichtdeterministischer endlicher Automat. :mrgreen:
Spaß beiseite: Woher bekommst du deine Muster? Regular Expressions sind für die Aufgabenstellung ideal, aber wenn die Maske vom Benutzer kommt, musst du ein bisschen umformen. |
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Die eingabe kommt vom Benutzer. Die Klammern können an beliebiger Stelle in einem beliebigen String eingebaut werden. Im Normalfall sind es allerhöchstens 3 Klammern.
Ich müsste dann also zum Beispiel prüfen, ob "Autos" in "Auto(s)" enthalten ist. |
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Es sollte relativ einfach sein, das Muster in einen regulären Ausdruck umzuwandeln. Wie? Mit einem regulären Ausdruck. :mrgreen: Ich bin da allerdings nicht so bewandert. Welche RegExp-Engine würdest du denn verwenden?
|
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
.. es ist noch relativ früh am Morgen..
Ist es nicht auch möglich, dass alle '(' und ')' aus dem String entfernt werden und dann mit pos nachgeschaut wird ob der gesuchte String enthalten ist. Beispiel: Aus (an)mutig(er)" wird anmutiger Gefunden würde: "mutig", "anmutig", "mutiger" und "anmutiger". Grüße Klaus |
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Zitat:
Delphi-Quellcode:
würde aus "(an)mutig(er)" ein "^(an)*mutig(er)*$" machen, welches doch schonmal nicht so schlecht aussieht und mich auch irgendwie an so'ne Vergleichsmaske erinnert?
S := '^' + StringReplace(S, ')', ')*', [rfReplaceAll]) + '$';
|
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Alle möglichen Permutationen in eine Liste vorberechnen.
Nach dem Wortstamm suchen und jede Fundstelle mit den Permutationen vergleichen. Gibt es keinen eigentlichen Wortstamm, wird es etwas komplizierter. |
Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)
Hey,
ich greife diesen Thread nochmal auf, da es immer noch um die selbe Sache geht. Ich versuche nun, das ganze in Eigenarbeit, sprich ohne Reguläre Ausdrücke, zu lösen und hoffe, dass ihr mir dabei helfen könnt. Ich habe den eingegebenen String nun auseinander genommen und die einzelnen "Bausteine" des Wortes sortiert, die aus den Klammern in eine StringList und die Teile zwischen den Klammern in eine andere. So möchte ich jetzt alle Möglichkeiten berechnen. Ich stehe aber total auf dem Schlauch und mir fehlt ein Ansatz :oops: Die Einträge der einen Liste müssen in jedem Wort vorkommen, das ist relativ einfach. Doch die aus der anderen Liste müssen mal vorkommen und mal nicht - in allen möglichen Kombinationen. Wie bekomme ich das möglichst elegant hin? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz