Regular expression find and replace in Postgres

前端 未结 2 1607
走了就别回头了
走了就别回头了 2020-12-14 14:58

I have a table that contains a number of rows with columns containing a URL. The URL is of the form:

http://one.example1.com:9999/dotFile.com

I

相关标签:
2条回答
  • 2020-12-14 15:49

    if you know the url, you don't have to use regex. replace() function should work for you:

    replace(string text, from text, to text)        
    Replace all occurrences in string of substring from with substring to   
    example: replace('abcdefabcdef', 'cd', 'XX')    abXXefabXXef
    

    you could try:

    replace(yourcolumn, 'one.example1.com:9999','example2.com')
    
    0 讨论(0)
  • 2020-12-14 16:01

    To replace a fixed string, use the simple replace() function.

    To replace a dynamic string, you can use regexp_replace() like this:

    UPDATE
      YourTable
    SET
      TheColumn = regexp_replace(
        TheColumn, 'http://[^:\s]+:9999(\S+)', 'http://example2.com\1', 'g'
      )
    
    0 讨论(0)
提交回复
热议问题