• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Mikael Blomkvist

Normande
Registriert
30.08.15
Beiträge
574
Hallo zusammen, ich bin nebenbei Mit-Administrator einer Seite, deren Software im Hintergrund auf der der Wikipedia-Projekte basiert. Dort führe ich teilweise Wartungsarbeiten durch, die den Quelltext bereinigen und um mir hier die Arbeit zu erleichtern, nutze ich dazu ein Javaskript, dass ich entsprechend füttere.

Solange es darum geht, ein Wort durch ein anderes zu ersetzen oder einfach nur ein Wort zu löschen, ist das auch mit der Funktion überhaupt kein Problem, schwierig wird es allerdings, wenn die Ersetzung davon abhängen soll, was vor oder hinter dem Ausdruck steht. Da ich einigermaßen rudimentär mit Javascript umgehen kann, mir aber das Hintergrundwissen und die Erfahrung fehlt, möchte ich hier mal die Experten fragen, wie ich die Formel einsetzen muss.
Code:
return {text: oldText.replace(/ersetzen/g, "ersetzt")};


Steht jetzt das Wort „nicht“ vor dem ersetzen, dann soll es auch nicht ersetzt werden, wie stelle ich das dar?
Code:
return {text: oldText.replace(/[^nicht ]ersetzen/g, "ersetzt")};


Funktioniert hier nicht, weil ich hier Probleme mit den bekomme, die am Ende stehen sollen. Kann mir hier jemand weiterhelfen? Sollte das unverständlich sein, einfach fragen, dann versuche ich gerne, es noch genauer zu erklären. Danke!
 

zilVerGFX

Macoun
Registriert
26.12.08
Beiträge
118
Moin Moin,

ich bin mir nicht ganz sicher wonach du suchst.

Hier findest du erstmal eine gute Einführung in reguläre Ausdrücke.

schwierig wird es allerdings, wenn die Ersetzung davon abhängen soll, was vor oder hinter dem Ausdruck steht.

Wenn ich das richtig verstanden habe, dann suchst du z.B. nach sowas:

"Das ist [replace]ein[/replace] Test" => Alles zwischen [replace] & [/replace] soll ersetzt werden:

Code:
var oldText = "Das ist [replace]ein[/replace] Test";

// Gibt aus "Das ist kein Test"
console.log( oldText.replace(/\[replace\](.*?)\[\/replace\]/g, "kein" )  ) ;


Zum Debuggen von regulären Ausdrücken ist übrigens Debuggex ganz nett.
 
  • Like
Reaktionen: Mikael Blomkvist