The correct regex to remove the first character?

user048760
user048760 βšͺ️

I have a column( that illustrates a dollar amount but is in string format. What I am trying to do is to remove the dollar sign ($) that is the very first character in each row, so i am only left with the numbers. I have tried the left/right substring but each dollar amount is different length so I have ran in to issues.

Best Answer

  • MichelleH
    MichelleH 🟠
    Accepted Answer

    Hi @user048760 ,

    If the text you want to remove is always the "$" symbol then you could use a Replace Text tile in MagicETL to just remove that character, regardless of the length.

    Then you would need use an Alter Columns tile to change the datatype of your column from string to a decimal.

Answers

  • GrantSmith
    GrantSmith Indiana πŸ”΄
    edited November 22
    REGEXP_REPLACE(`field`,'^\$(.*)$', '$1')
    


  • MarkSnodgrass
    MarkSnodgrass Portland, Oregon 🟀

    You should have the formula tile available to you now that Magic ETL 2.0 is live. You can then do this in a formula tile to remove the $ and convert it to a decimal:

    CAST(REPLACE(`fieldname`,'$','') as decimal)
    


  • GrantSmith
    GrantSmith Indiana πŸ”΄

    Alternatively you can also use a formula tile to remove the first character by using RIGHT and LENGTH

    RIGHT(`field`, LENGTH(`field`)-1)