2016-11-15 3 views
2

Mit Notepad ++ und ersetzen Funktion habe ich versucht, ein Symbol vor jedem Wort meiner Liste „+“ oder „[“ hinzuzufügen.Regular Expression - ein Zeichen hinzufügen vor/nach jedem Wort

Beispiel der Liste:

  • blaues Auto
  • rotes Auto groß
  • rotes Auto klein
  • grünes Auto groß
  • grünes Auto klein

Ich bin auf der Suche für folgendes Ergebnis:

  • + blue + Auto
  • + rot + Auto + kleine
  • + rot + Auto + big
  • .. etc

Ich weiß, wie ein Zeichen vor dem jeder Zeile hinzuzufügen. .. aber ich kann nicht den Weg finden, es vor jedes Wort ohne zu ersetzen ersetzen "blau" bis "+ blau".

+2

Was hat das mit 'php' zu tun? – arkascha

+0

was hat php dazu zu tun? (Geben Sie mir Ihr Verständnis Ihres Problems: Ersetzen von Wörtern mit Editor RegExp) – Guiroux

+1

Versuchen Sie '\ b \ w + \ b' ersetzen mit' + $ & ' –

Antwort

3

Eine Cross-Plattform-Lösung sollte

sein

Suche: \b\w+\b (oder \b[[:alpha:]]+\b)
ersetzen: +$&

Suchmuster Details:

  • \b - ein führender Wortgrenze
  • \w+ - 1 oder mehr Wort Zeichen (wenn [[:alpha:]]+ verwendet wird, 1+ Buchstaben)
  • \b - eine Hinterwortgrenze

Ersatz Details: + ist eine wörtliche plus, und $& ist die Rückreferenzierung auf die ganzes Spiel.

Siehe Screenshot:

enter image description here

+1

Danke für die klare Erklärung ... Noch etwas Arbeit, um die Regex zu verwalten! – B4b4j1

+1

Sie meinen "lernen" :)? Beachten Sie, dass die meisten Online-Regex-Tester zu einem gewissen Grad vertrauenswürdig sind, da sie normalerweise nicht die NPP-Art der Handhabung von Regex unterstützen. Aktivieren Sie die [Regex-Syntax erhöhen] (http://www.boost.org/doc/libs/1_62_0/libs/regex/doc/html/boost_regex/syntax.html) und testen Sie immer in Notepad ++. –

+0

Ja Lernen ist der Schlüssel! Ich benutze Regex mehr und mehr, um mit großen Wörtern und Tabellen zu arbeiten. Aber ich habe keine Zeit, um alle Fächer zu vertiefen. Danke nochmal für Hilfe! – B4b4j1

1

(siehe Screenshot unten)

  • die Suche öffnen/Ersetzen-Dialog (Ctrt + H)
  • im Find Eingang, diese Regex eingeben: (\b\w) die "Wortgrenze gefolgt von einem Buchstaben" bedeutet
  • in den Replace with Eingang, geben Sie diesen Ersatz ein: +\1 was bedeutet "setzen Sie ein + Zeichen, gefolgt von was auch immer zwischen der Regex Klammer"
  • Klick Show advanced options Checkbox
  • klicken Search with regular expressions Radiobutton
  • treffen dann Replace Taste so oft wie Sie wollen, oder Replace all einmal

enter image description here

EDIT: für Windows so ziemlich das gleiche ist (siehe Dialogfeld Suchen/Ersetzen http://sqlblog.com/blogs/jamie_thomson/image_1AFC2B61.png) Die Option Regulärer Ausdruck befindet sich unten links

+0

ja ich habe es versucht und funktioniert für mich. Siehe Screenshot. Haben Sie alle Regex-Optionen wie im angezeigten Dialog eingestellt? – arhak

+0

ja, es ist NPP, nur in Debian – arhak

+0

OK, das '\ b' scheint nicht richtig in Windows NPP zu funktionieren. – AbraCadaver