Extract the string values in between stroke and question mark in a URL

Hi Domo,

I am looking for a way to extract the string values in between stroke and question mark in a URL

Example URL:

https://dam-bc.com/content/67-making-AI-trustable.pdf?_gl=1*ckt29z

I want to extract this part of URL: "67-making-AI-trustable.pdf"

Ideally if I can do that with a beast mode formula would be great. But if there is any tile in the ETL that can help me would be helpful too

Thanks

Best Answer

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    If you won't always have a ? in the URL and want to get the end of it you can make the ? optional by adding ? after the group

    REGEXP_REPLACE(`url`, '^.*\/([^\/]+)(?=\?)?.*$', '$1')
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**

Answers

  • GrantSmith
    GrantSmith Coach
    edited August 16

    You can use REGEXP_REPLACE in a MagicETL formula tile:

    REGEXP_REPLACE(`url`, '^.*\/([^\/]+)(?=\?).*$', '$1')
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • Atieh
    Atieh Member

    Thanks @GrantSmith

    But it didn't work. Not sure why

  • Atieh
    Atieh Member

    @GrantSmith I looked at the URLs, some doesn't have ? that's why it didn't work for those

    Any idea how to make it work?

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    If you won't always have a ? in the URL and want to get the end of it you can make the ? optional by adding ? after the group

    REGEXP_REPLACE(`url`, '^.*\/([^\/]+)(?=\?)?.*$', '$1')
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • Atieh
    Atieh Member

    It worked Thanks! @GrantSmith

    But still some of them has ? at he end

  • You can use this updated regex:

    REGEXP_REPLACE(`url`, '^.*\/([^\/]+\.pdf)(?:\?.*)?$', '$1')
    
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • Atieh
    Atieh Member

    @GrantSmith This new one didn't work. Previous one was better