2017-10-17 6 views
-2

Ich versuche, ein Bindestrich zwischen den Wörtern hinzuzufügen, die derzeit einen leeren Raum, dhNotepad ++ hinzufügen Zeichen Leerzeichen zwischen Zeichen

das ist ein Test

this- wird is-a-Test

ich weiß, dass es meistens wahrscheinlich regex erfordern würde, aber nicht sicher, wie es in Notepad zu formatieren ++

+0

Warum ersetzen Sie nicht einfach Leerzeichen durch Bindestriche? – Seblor

+0

Danke für die Antwort, das Problem mit dem Ersetzen aller Leerzeichen besteht darin, dass es zu Bereichen in meiner Datei Bindestriche mit Leerzeichen hinzufügen würde, die Zahlen anstelle von nicht numerischen Zeichen haben. – rahrahruby

+2

@rahrohruby fügen Sie bitte ein Beispiel zu Ihrer Frage hinzu. – Amy

Antwort

1

Sie können Lookarounds verwenden, um diese Bedingungen zu überprüfen, z. von

(?<=[A-Za-z]) (?=[A-Za-z]) 

Und dann ersetzen Sie es einfach mit -. Wenn mehrere aufeinander folgende Leerzeichen berücksichtigt werden müssen, können Sie auch + verwenden. Wenn Sie auch Registerkarten in Betracht ziehen, können Sie \h verwenden, um alle Arten von horizontalen Whitespaces abzugleichen. Wenn Sie alle Unicode-Buchstaben berücksichtigen müssen, verwenden Sie [[:alpha:]] anstelle von [A-Za-z].

Wenn Sie den Ersetzungsvorgang mithilfe einzelner Ersetzungsvorgänge durchführen möchten, anstatt die Option "Alle ersetzen" zu verwenden, müssen Sie einen der Lookarounds in eine Erfassungsgruppe umwandeln - z. B. ([A-Za-z]) (?=[A-Za-z]) und durch \1- ersetzen.

+0

Danke Sebastian, das hat den Trick gemacht! – rahrahruby

+0

Dies ersetzt jedoch nicht die Leerzeichen in Notepad ++ Hmmm. – marklark

+0

@marklark Es funktioniert für mich, obwohl ich zugeben muss, dass ich mein NP ++ für eine Weile nicht aktualisiert habe. Eine bestimmte Zeichenfolge, für die es nicht funktioniert? –

1

UPDATE:

in Notepad ++ 's Dialog ersetzen,

Suchen nach: (.)\b \b (gefangen Zeichen, Wortgrenze, ein einziger Raum, eine Wortgrenze)

Ersetzen durch: \1- (put Zeichen zurück, ersetzen Leerzeichen durch Bindestrich)

Dies funktioniert jetzt für "Ersetzen" und "Alle ersetzen".

+1

Dies funktioniert jedoch nicht richtig für einzelne Zeichen Wörter in der Mitte eines Satzes - 'Bin ich Groot?' –

+0

Danke, Sebastian. Ich werde daran arbeiten. – marklark

Verwandte Themen