Ich benutze TextWrangler grep, um Suchen/Ersetzen für mehrere Dateien durchzuführen, und habe eine Wand mit dem letzten gefunden/ersetzt, den ich brauche ausführen. Ich muss einen beliebigen Text zwischen ">
und der ersten Instanz einer <br />
in einer Zeile übereinstimmen, aber die Übereinstimmung kann nicht die Zeichenfolge [xcol] enthalten. Der Regex-Flavor ist Perl-Compatible (PCRE), daher muss Lookbehind eine feste Länge haben.Regex, um einen Teil der Zeichenfolge zu finden, wenn die Übereinstimmung keine bestimmte Zeichenfolge enthält - PCRE grep
Beispiel Text suchen:
<p class="x03">FooBar<br />Bar</p>
<p class="x03">FooBar [xcol]<br />Bar</p>
<p class="x06">Hello World<br />[xcol]foo[xcol]bar<br /></p>
<p class="x07">Hello World[xcol]<br />[xcol]foo[xcol]bar<br /></p>
gewünschte Verhalten von regex:
1st Line Spiel">
FooBar <br />
2nd Line keine Übereinstimmung
3. Zeile Spiel">
Hallo Welt <br />
4. Zeile
Der Text zwischen ">
und <br />
wird in einer Gruppe erfasst, die mit der Replace-Funktion verwendet wird. Die nächstgelegene ich bekam wurde mit der folgenden Regex mit negativem Look-Ahead, aber das wird die dritte Zeile nicht überein, wie gewünscht:
">((?!.*?\[xcol]).*?)<br />
Jede Hilfe oder Ratschläge sehr geschätzt werden. Vielen Dank.
Dies ist genau das, was ich brauchte. Vielen Dank! – lxbrg
@lxbrg, gern geschehen. Du warst der Lösung verdammt nahe! :) –