StringReplace aber nur das ganze Wort bitte

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

StringReplace aber nur das ganze Wort bitte

Beitrag von pluto »

Hallo,
für ein Aktuelles(interessantes) Projekt benötige ich ein StringReplace was nicht nach teilstrings sondern nach einem ganzen Wort suchen kann und das dann ersetzten kann.

Gibt es sowas schon fertig ? oder müsste ich mir selbst was ausdenken ?

Mir geht es darum das beim suchen in einem String nur nach Ganzen Wörtern gesucht wird und wenn das gefundene dabei ist, soll das ersetzt werden......
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Pos, und suchen was dahinter und davor steh, wenn es kein Satzzeichen bzw. Leerzeichen ist, nicht ersezten, sonst ersetzen.
Johannes

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Naja pos sucht aber nach teilstrings, ich möchte aber Wort weise suchen.
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

pluto hat geschrieben:Naja pos sucht aber nach teilstrings, ich möchte aber Wort weise suchen.


Wie monta schon sagte: Wenn davor und dahinter ein Leer-/Satzzeichen/Dokumentanfang ist, handelt es sich um ein Wort.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Regular Expressions: http://www.regexpstudio.com/TRegExpr/TRegExpr.html

Beispiel:
Memo1.text:= ReplaceRegExpr ('\b(?i)pluto\b', 'Ein Beispiel fuer Pluto, plutonium pluTo', 'Michael', false);

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

BESTEN DANK, THEO Klappt besstens....
Scheint ja richtig mächtig zu sein diese Klasse.....

Ich werde mir gleich mal die Hilfe genau ansehen.... und auch die Syntax... weil ich möchte auch Zahlen finden, die ich nicht kenne...... also z.b.:
test1243halo in diesen String sind ja Zahlen enthalten..... und die möchte ich finden und ersetzten... müsste doch auch gehen mit der Klasse oder ?
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Ja. Es geht fast alles wenn man weiss wie ;-)

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

das ist war..... aber die klasse kann ja viel....
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich suche mit ReplaceRegExpr nach einem Symbole z.b. + oder * doch leider sind das zeichnen die auch als Befehl verstanden wird....

Hast du eine Idee wie ich nach einem + suchen könnte und das dann ersetzten könnte ?

Die Hilfe sagt irgendwas mit \+\ Aber das geht irgendwie auch nicht

edit: Fehler gefunden *G*
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich habe ein kleines Problem mit der Funktion StringReplace
und zwar bei der Angabe des zuersetzten strings.

ich habe leider zeichne wie {} und <> die ja leider auch in in den Regl.... drin vorkommen... hast du eine Idee wie ich das machen könnte ?
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich meine sowas hier:

Code: Alles auswählen

// Schlüsselwörter
      if modus = 0 then begin
        for i2:=0 to KeyWods.count-1 do
          strings[i]:=ReplaceRegExpr ('\b(?i)'+KeyWods[i2]+'\b', strings[i], '<t class="keywods">'+KeyWods[i2]+'</t>', false);
      end; // sselw


KeyWods ist eine TStringList...... seit dem ich css Anweisungen hinzugefügt habe, habe ich Probleme.... ich weiß noch nicht genau warum....

edit01:

Code: Alles auswählen

// Schlüsselwörter
      if modus = 0 then begin                                                // <t class="keywods">
        for i2:=0 to KeyWods.count-1 do                                      // <font color="blue">
          strings[i]:=ReplaceRegExpr ('\b(?i)'+KeyWods[i2]+'\b', strings[i], '<font color="blue">'+KeyWods[i2]+'</font>', false);
      end; // Schlüsselwörter


so geht es, aber wenn ich font gegen t class= austausche geht es nicht mehr.....
hat jemand eine Lösung dafür ? wenn ja welche ?

edit02: Es hat mit den Wort Class zu tuen, weil dieses Wort kommt auch in der TStringlist vor und soll ja ersetzt werden.....
MFG
Michael Springwald

Antworten