{"id":823,"date":"2007-11-29T23:33:26","date_gmt":"2007-11-29T22:33:26","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2007\/11\/29\/sql-talk\/regulaere-ausdruecke-in-tsql"},"modified":"2007-11-29T23:33:26","modified_gmt":"2007-11-29T22:33:26","slug":"regulaere-ausdruecke-in-tsql","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2007\/11\/29\/sql-talk\/regulaere-ausdruecke-in-tsql","title":{"rendered":"Regul&#228;re Ausdr&#252;cke in TSQL"},"content":{"rendered":"<p>Eigentlich finde ich alle Artikel von Robyn Page und Phil Factor (ein Pseudonym) von sehr gut. Sie sind gut durchdacht und bieten gerne unkonventionelle Ans&#228;tze. Erst neulich las ich den Artikel <a href=\"http:\/\/www.codeproject.com\/cs\/library\/SqlRegEx.asp\">A T-SQL Regular Expression Library for SQL Server 2005<\/a> in dem Steve Abraham eine TSQL-Funktion beschreibt, um damit regul&#228;re Ausdr&#252;cke in TSQL zu erm&#246;glichen. Schon zu dem Zeitpunkt nahm ich mir vor das mal zu testen.<br \/>\nRobyn und Phil machen das gleiche einfach &#252;ber OLE-Automation. Nat&#252;rlich hat das den Nachteil, dass man das am Server erlauben muss, aber es ist einfach und flexibel. Die Performance habe ich nicht gemessen, nach deren Aussage sollte CLR aber schneller sein. Dennoch gef&#228;llt mir der Ansatz sehr gut. Egal f&#252;r welches der beiden Modelle man sich entscheidet, der Artikel ist f&#252;r beide lehrreich.<\/p>\n<p>Ein Beispiel f&#252;r eine schon recht komplexe Abfrage mittels TSQL:<\/p>\n<p><code lang=\"sql\">--A valid email address?<br \/>\nSELECT dbo.RegexMatch(&#x0027;^(([a-zA-Z0-9!#\\$%\\^&#038;\\*\\{\\}'&#x0027;`\\+=-_\\|\/\\?]+(\\.[a-zA-Z0-9!#\\$%\\^&<br \/>\n\\*\\{\\}'&#x0027;`\\+=-_\\|\/\\?]+)*){1,64}@(([A-Za-z0-9]+[A-Za-z0-9-_]*){1,63}\\.)*(([A-Za-z0-9]+[A<br \/>\n-Za-z0-9-_]*){3,63}\\.)+([A-Za-z0-9]{2,4}\\.?)+){1,255}$&#x0027;,'Phil.Factor@simple-Talk.com&#x0027;)<\/code><\/p>\n<p>Wer gerne solche Dinge machen w&#252;rde, der sollte unbedingt den Artikel &quot;<a href=\"http:\/\/www.simple-talk.com\/sql\/t-sql-programming\/tsql-regular-expression-workbench\/\">TSQL Regular Expression Workbench<\/a>&quot; lesen&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eigentlich finde ich alle Artikel von Robyn Page und Phil Factor (ein Pseudonym) von sehr gut. Sie sind gut durchdacht und bieten gerne unkonventionelle Ans&#228;tze. Erst neulich las ich den Artikel A T-SQL Regular Expression Library for SQL Server 2005 in dem Steve Abraham eine TSQL-Funktion beschreibt, um damit regul&#228;re Ausdr&#252;cke in TSQL zu erm&#246;glichen. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/823"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=823"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/823\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=823"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=823"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}