Dies sollte eine einfache sein, obwohl ich nicht ganz eine geeignete Lösung gefunden.SQL-Server ersetzen Teile einer Zeichenfolge mit Regex
Ich muss eine (eher) einfache Ersetzung mit SQL (SQL Server) wie folgt implementieren. Stellen Sie sich eine Zeichenfolge, die wie folgt aussieht:
'This is a simple example where aaa[0004] should become aaa[4] and b[0],c[1] should remain unchanged'
Mit anderen Worten, ein Muster [0004]
sollte [4]
werden.
ich machen zunächst dachte, die ersetzt wie:
SET @MyString = REPLACE(@MyString,'[0','[') ;
aber, noch bevor es zu testen, wurde mir klar, dass es auch [0]
-[]
umwandeln würde, die nicht wollen, ist ich will.
Ich weiß, wie man es einfach in PL/SQL macht, aber in SQL Server habe ich Schwierigkeiten.
Jede Hilfe wird am meisten geschätzt.
Dies ist ziemlich schmerzhaft in SQL Server zu tun. –
Wenn Sie CLR-Assemblys verwenden dürfen, verfügt [SqlSharp] (http://www.sqlsharp.com/features/) über Implementierungen von RegEx sowie eine ganze Reihe hervorragender CLR-Funktionen. – SqlZim
Vielen Dank @SqlZim, aber nein, ich kann diese Art von Dingen nicht verwenden (Firmenrichtlinie). Ich dachte daran, nach '[0', von dort'] 'zu suchen, und wenn es Ziffern dazwischen gibt, ersetze das erste' [0' mit '[' '. Dann Schleife, bis keine weiteren Fälle gefunden wurden. Das würde funktionieren, aber seine Hässlichkeit verursacht mir Schmerzen. – FDavidov