2012-04-13 17 views
0

Ich brauche einen Text ein bisschen Datei in meinem Notepad umformatieren ++ und ich habe einen Text dieser Art:Regular Expression (Regex)

Dies ist ein Beispieltext. Dies ist ein Beispieltext. Dies ist ein Beispieltext.
- Dies ist ein Beispieltext.
-Dies ist ein Beispieltext.
- Dies ist ein Beispieltext.
- Dies ist ein Beispieltext.

So wie Sie oben Text sehen in können, gibt es zwei Arten von „-“ vorangehenden Text der mit dem Raum nach „-“ und diejenigen ohne es ich brauche nur die, die ohne sapce und fügen Sie es finden dazwischen "-" und der "Text"

Wenn ich lief Stück Code unter

- [A-Za-z0-9]

es findet Bindestrich und erste Buchstaben direkt nach dem es, die ist nicht nützlich, da wenn ich den Text ersetze, ändert es diesen ersten Buchstaben, der immer unterschiedlich ist (abhängig davon, was ich s geschrieben), also muss ich das finden und nur das "-" auswählen und dann durch "-" ersetzen, wenn es keinen besseren Weg gibt.

Antwort

1

Zu Demonstrationszwecken:

Find what: -([A-Za-z0-9])(.+) 
Replace with: - \1\2 

Die Klammern bezeichnen eine Capture-Gruppe. In Ersetzen Sie mit Zeile, verwenden Sie Backslash und die Nummer der Gruppe, um es hinzuzufügen.

Das, was Sie wirklich wollen, ist eine NOT-Gruppe, wie -([^\s]) (Übereinstimmung, bei der ein Bindestrich nicht unmittelbar von einem Leerzeichen gefolgt wird).

+0

Vielen Dank, es funktioniert einwandfrei! –

1

Suche nach

-([^ ]) 

und ersetzen mit

- \1 

[^ ] eine negierte Zeichenklasse ist und passt alles andere als ein Raum. Dieses Zeichen wird in \1 wegen der Klammern () um das Muster gespeichert.

+0

Diese Methode funktioniert auch gut, also danke auch :)), ihr seid toll! –