2012-10-31 14 views
15

Ich habe eine Datei mit einigen kommagetrennten Namen und einigen durch Kommas getrennten Kontonummern. Also werden die Namen immer etwas wie "Dow, John" und die Zahlen wie ",19862" sein. Mit den Regex Find-Funktionen von Notepad ++ möchte ich alle ',' s zwischen den Zahlen in '|' s ändern.Verwenden von Notepad ++ Regex zum Suchen und Ersetzen nur eines Teils des gefundenen Textes

Grundsätzlich drehen:

12345,09876 
13568,08642 

in

12345|09876 
13568|08642 

Ich habe mit [0-9],- die Kommas finden, aber ich kann es nicht richtig bekommen, um die letzte Ziffer der verlassen Nummer und ersetzen nur das Komma.

Irgendwelche Ideen?

Antwort

18

Suche nach ([0-9]), und ersetzen sie durch \1| verwenden. Funktioniert es?

+0

Ah, das scheint es zu tun, danke! Ich habe versucht, '[0-9]' zu ersetzen und es durch '\ 1 | 'zu ersetzen, was NICHT funktionierte, aber das Hinzufügen der Klammern wie hier funktioniert perfekt. Danke noch einmal! – JToland

+0

Warum brauchen wir die Parens? – Patrick

+1

@Patrick In Regex erstellen die Klammern eine Erfassungsgruppe, die den Parser anweist, die Teile in der Gruppe zu erfassen, damit sie für Ersetzungen verwendet werden können. –

6

Verwendung dieser regex

(\d),(\d) 

und ersetzen sie durch

$1|$2 

ODER

\1|\2 
+0

Würden Sie '\ d +' nicht verwenden? – Blender

+0

@Blender, die das gleiche machen würde – Anirudha

+0

Das tatsächlich ersetzt "$ 1 | $ 2" in-line in den Text - wie es war nicht $ 1 als etwas zu analysieren, aber die beabsichtigte Zeichenfolge, die ich wollte. – JToland

2

(?<=\d), funktionieren sollte. Seltsamerweise funktioniert das nur, wenn ich all das ersetze, aber nicht wenn ich single ersetzen benutze. Als Alternative können Sie (\d), und ersetzen mit $1|

+0

Ich glaube nicht, dass Notepad ++ die 'Lookahead'- und' Lookbehind'-Assertions unterstützt. – Nick

+0

@Nick tatsächlich, tut es. Ich habe NP ++ und das funktioniert (findet Übereinstimmungen), aber ersetzt sie nur, wenn ich alle ersetzen. Wenn ich versuche, sie von Fall zu Fall zu ersetzen, bleiben sie unverändert. –

+0

Ich glaube dir, das hatte ich nur gehört. Ich habe NP ++ noch nicht für Regex verwendet. – Nick

Verwandte Themen