Gunnar Bittersmann: Ersetzen in Notepad++

@@alle:

nuqneH

Ich möchte alle <a href="Foo" class="Bar">Baz</a> ersetzen durch <a href="foo" class="bar">Baz</a>.

Das Suchmuster ist klar: <a href="([^"]+)" class="([^"]+)">([^<]+)</a>.

Ich habe aber nichts gefunden, wie’s gehen soll, dass die Suchtreffer \1 und \2 in Kleinbuchstaben umgewandelt werden?

Kann Notepad++ das etwa nicht? Muss ich mir doch wieder TextPad installieren? Der kann das mit angehängtem '\l'.

Qapla'

--
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)
  1. Lieber Gunnar Bittersmann,

    ich stehe mit diesen Scintilla-Regexen sehr auf Kriegsfuß. Warum können die nicht vollständig POSIX-kompatibel sein?

    Kann Notepad++ das etwa nicht? Muss ich mir doch wieder TextPad installieren? Der kann das mit angehängtem '\l'.

    Ich fürchte, Notepad++ wird Dich da nicht glücklich machen. Aber es steht ja auch in der Wikipedia, dass man bei Suchen&Ersetzen mit Scintilla hinter verbreiteten Standards zurückbleibt.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi!

      Kann Notepad++ das etwa nicht? Muss ich mir doch wieder TextPad installieren? Der kann das mit angehängtem '\l'.
      Ich fürchte, Notepad++ wird Dich da nicht glücklich machen. Aber es steht ja auch in der Wikipedia, dass man bei Suchen&Ersetzen mit Scintilla hinter verbreiteten Standards zurückbleibt.

      RegExp sind zum Suchen von Mustern da. Sie beschreiben nicht, was dann mit ihnen geschehen soll. Um irgendeine Umwandlung zu erreichen, müsste eine Funktion (oder ähnliches) aufgerufen werden, mit dem gefundenen Teil als Argument. Mir ist kein Standard bekannt, der so etwas (unabhängig von Programmiersprachen) definiert. In PHP würde man preg_replace_callback() verwenden und die Umwandlung in Kleinschreibung über die Callback-Funktion erledigen. For NP++ fällt mir nur ein, ein Macro zu erstellen oder nach einem Plugin Ausschau zu halten, das für Replace einen Sack verwendbarer Funktionen mitbringt.

      Lo!

      1. Lieber dedlfix,

        RegExp sind zum Suchen von Mustern da. Sie beschreiben nicht, was dann mit ihnen geschehen soll.

        da hast Du zweifelsohne völlig Recht. Ja. Aber: Die RegEx-Implementierung alleine lässt für mich bereits schwer zu wünschen übrig. Viele Suchmuster, die in meinen Scripten nach POSIX-Standard in den PCRE-Funktionen von PHP matchen, wollen dieses in Scintilla einfach nicht. Und das nervt! Ich will z.B. nicht [\d]+ schreiben müssen, wenn es \d+ auch getan hätte. Und solche Fälle gibt es massenweise mit Scintilla.

        For NP++ fällt mir nur ein, ein Macro zu erstellen oder nach einem Plugin Ausschau zu halten, das für Replace einen Sack verwendbarer Funktionen mitbringt.

        Das ist fachlich hilfreich.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)