AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Strings vergleichen-String Variabel, z.B.: "Auto(s)"
Thema durchsuchen
Ansicht
Themen-Optionen

Strings vergleichen-String Variabel, z.B.: "Auto(s)"

Ein Thema von Fussball-Robby · begonnen am 27. Aug 2009 · letzter Beitrag vom 14. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#1

Strings vergleichen-String Variabel, z.B.: "Auto(s)&quo

  Alt 27. Aug 2009, 19:27
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!
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 27. Aug 2009, 19:33
Sollte mit regulären Ausdrücken machbar sein
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 27. Aug 2009, 19:34
Was du vorhast klingt eher nach Stemming. Kommt drauf an wie umfangreich das werden soll - theoretisch gings auch mit Regexen bis zu einem gewissen grad, aber naja, eigentlich müsstest du dich schon eher in ersteres Thema einarbeiten
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 27. Aug 2009, 19:34
Nichtdeterministischer endlicher Automat.
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 27. Aug 2009, 19:41
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.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 27. Aug 2009, 19:55
Es sollte relativ einfach sein, das Muster in einen regulären Ausdruck umzuwandeln. Wie? Mit einem regulären Ausdruck. Ich bin da allerdings nicht so bewandert. Welche RegExp-Engine würdest du denn verwenden?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 28. Aug 2009, 08:11
.. 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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#8

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 28. Aug 2009, 08:18
Zitat von Klaus01:
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.
gefunden würde auch "xyzmutig"

S := '^' + StringReplace(S, ')', ')*', [rfReplaceAll]) + '$'; 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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 28. Aug 2009, 10:29
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.
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Strings vergleichen-String Variabel, z.B.: "Auto(s)

  Alt 14. Sep 2009, 15:12
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 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?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz