We help IT Professionals succeed at work.

Regular Expression to modify a T-SQL query to return formatted dates. (Search and Replace REGEX)

megnin
megnin asked
on
I need a Regular Expression to reconstruct a T-SQL query with a bunch of date columns.

With query items like this:
      ,[ObtainedGADataSheet]
      ,[C_ObtainedGADataSheet]
      ,[ReceivedJobDesc]
      ,[C_ReceivedJobDesc]

The result should look like this:
      ,CONVERT(Varchar,[ObtainedGADataSheet],101) AS 'ObtainedGADataSheet'
      ,CONVERT(Varchar,[C_ObtainedGADataSheet],101) AS 'C_ObtainedGADataSheet'
      ,CONVERT(Varchar,[ReceivedJobDesc],101) AS 'ReceivedJobDesc'
      ,CONVERT(Varchar,[C_ReceivedJobDesc],101) AS 'C_ReceivedJobDesc'

The text editor I'm using to accomplish this is called "EditPad Pro 7" by "Just Great Software Co. Ltd." and supports Regex search and replaces.

I'm tried this in the Search: field:
,.*

And this in the Replace: field:
,CONVERT(Varchar,$&,101) AS '\0'

And I get this result:
      ,CONVERT(Varchar,,[ObtainedGADataSheet],101) AS ',[ObtainedGADataSheet]'
      ,CONVERT(Varchar,,[C_ObtainedGADataSheet],101) AS ',[C_ObtainedGADataSheet]'
      ,CONVERT(Varchar,,[ReceivedJobDesc],101) AS ',[ReceivedJobDesc]'
      ,CONVERT(Varchar,,[C_ReceivedJobDesc],101) AS ',[C_ReceivedJobDesc]'

There are two extra commas in this result.  Each extra is before a "[" character.   I see where it's coming from, but I don't know how to fix it.  Note that the brackets should be removed from the field name after "AS."

Thanks a bunch.
*Oh, I don't want a Python or C# solution, I'll be continuing to use my text editor's search and replace feature.
A reference to it's syntax can be found here, but it's pretty standard:
http://www.regular-expressions.info/replacematch.html
Comment
Watch Question

Commented:
I worked it out.  This works and meets all of my criteria:

With:
      ,[ObtainedGADataSheet]
      ,[C_ObtainedGADataSheet]
      ,[ReceivedJobDesc]
      ,[C_ReceivedJobDesc]

Search:
\[(\w+)\]

Replace:
CONVERT(Varchar,\0,101) AS '\1'

Results:
      ,CONVERT(Varchar,[ObtainedGADataSheet],101) AS 'ObtainedGADataSheet'
      ,CONVERT(Varchar,[C_ObtainedGADataSheet],101) AS 'C_ObtainedGADataSheet'
      ,CONVERT(Varchar,[ReceivedJobDesc],101) AS 'ReceivedJobDesc'
      ,CONVERT(Varchar,[C_ReceivedJobDesc],101) AS 'C_ReceivedJobDesc'