11 Stimmen

Regex - Kombination von positivem und negativem Lookbehind

Ich bin dabei, einige Ersetzungen in einigen großen SSIS-Paketen vorzunehmen, um Änderungen in Tabellen- und Spaltennamen zu berücksichtigen.

Einige der Tabellen haben Spaltennamen, die mit den Tabellennamen identisch sind, und ich muss den Spaltennamen anpassen, ohne den Tabellennamen anzupassen.

Was ich also brauche, ist eine Möglichkeit, die MyName en [MyName] aber nicht in [dbo].[MyName]

(?<=\[)(MyName)(?=\]) passt zu beidem, und ich dachte, dass (?<!\[dbo\]\.)(?<=\[)(MyName)(?=\]) würde das funktionieren, aber es scheint nicht zu funktionieren.

9voto

Jens Punkte 24565

Sie müssen die öffnende eckige Klammer in das erste Nachschlagewerk aufnehmen:

(?<!\[dbo\]\.\[)(?<=\[)(MyName)(?=\])

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X