Suchen und ersetzen mit RegExpr

HansFried
2010-12-19
2012-11-13
  • HansFried
    HansFried
    2010-12-19

    Hallo,
    ich muss in großen XML-Dateien Dezimal-Punkte durch Kommas ersetzen. Das Format variiert (0.0 - 10.153 usw.).

    Nach Anweisung habe ich mir den reg. Ausdruck
    ("middle">)(*)(\.)(*)(<\/entry>)
    gebastelt, der alle vorkommenden Stellen findet.

    Nach Tut müsste man nun mit
    \1\2\3,\4\5
    der Punkt ersetzt werden und der Rest bleiben, tuts aber nicht.

    Vielleicht bin ich auch nur zu blöde. ;-)

    Ich verwende 5.8.3 (unicode) unter Win7 64 und TextFX (TextFX -> TextFX Quick ->Find/Replace)

    Dankbar für jede Hülfe.
    Hansfried

     
  • kirsche40
    kirsche40
    2010-12-19

    Hallo Hansfried,

    ich gehe mal davon aus, dass es sich um einen Bug handelt.  Das genannte TextFX-Quick Modul wird AFAIK nicht mehr betreut. Die Zahlenteile der Zeile

    "middle">0.12</entry>

    werden auch nicht vom einfachen RegEx

    gematcht. Aber Du kannt mal die normale Text-Ersetzungs-Funktion (Ctrl+H) ausprobieren. Dort musst Du im Suchmodus "Reguläre Ausdrücke" auswählen. Dann gibst Du unter "suchen nach" Deinen RegEx ein. Beim "Ersetzen durch" solltest Du aber Deinen String ändern und den 3. Match wegfallen lassen, welcher den Punkt ins neue Ergebnis übernimmt:

    statt \1\2\3,\4\5  ---> \1\2,\4\5

    Allgemein kann man mittels
    http://gskinner.com/RegExr/
    sehr schön reguläre Ausdrücke testen. Aber Obacht! Notepad++ verwendet SciTE, und das kann nur POSIX BRE (ohne Alternation) statt POSIX ERE (mit Alternation).

    Ciao,
    Kirsche.

     
  • HansFried
    HansFried
    2010-12-26

    Hallo Kirsche,
    vielen Dank für die Antwort. Dachte, man kriegt eine Mehl, wenn was eingeht.
    Ich versuche Deinen Vorschlag mal. Muss ein besch… übersetztes Handbuch korrigieren und der Fall
    kommt 1230-mal vor. Da lohnt sich das Suchen nach einer Lösung.
    Notfalls schreibe ich mir ein PHP-Script, das geht auf jeden Fall.
    Wünsche guten Rutsch.
    Hansfried

     
  • HansFried
    HansFried
    2010-12-26

    Hallo Kirsche,
    Rückmeldung:
    Habe auf 5.8.6 aktualisiert und es geht, wie Du schreibst!

    Danköööö!!!
    Hansfried