Regex to replace any value having special character in string like 2121k$ , 2121k€, 1000k CHF, 1000k EUR, 1000k USD

Hi Team,

Can anyone please help me with regex to replace every number in string having following with space.

  • $
  • CHF
  • EUR
  • USD

Example

1. Test 2121k$ test data :--> Test  test data

2. Test 2121k€ test data :--> Test  test data

3. Test 1000k CHF test data set :--> Test  test data set

4. Test 1000k EUR test data set :--> Test  test data set

5. Test 1000k USD test data set :--> Test  test data set

Thanks

Bihitak

  Discussion posts and replies are publicly visible

Parents
  • There may be a more elegant way but it's easiest to understand and implement as two expressions:

    1. an expression that takes as its input the data you want processed and performs a fn!reduce() on it, using the list of currencies you want to find and replace with the space character
    2. a helper expression rule which is called by the above rule, which is called recursively by the fn!reduce() for each currency you want replaced. This uses the fn!regexreplaceall which uses a pattern to match on the string being and replaces all matches with, in this example, a space

    The first rule looks something like this:

    fn!reduce(
      rule!SJB_ER_replaceCurrencyValue,
      ri!data,
      { "\$", "€", "CHF", "EUR", "USD" }
      /* note that the dollar symbol in the list above includes the backslash escape character as */
      /* the dollar symbol has a speical menaing in regex expressions */
    )

    and the second rule looks like this:

    fn!regexreplaceall(
      concat("[0-9]*k", ri!currency),
      ri!data,
      " "
    )

    If you need any further explanation as to what's happening here please ask.

Reply
  • There may be a more elegant way but it's easiest to understand and implement as two expressions:

    1. an expression that takes as its input the data you want processed and performs a fn!reduce() on it, using the list of currencies you want to find and replace with the space character
    2. a helper expression rule which is called by the above rule, which is called recursively by the fn!reduce() for each currency you want replaced. This uses the fn!regexreplaceall which uses a pattern to match on the string being and replaces all matches with, in this example, a space

    The first rule looks something like this:

    fn!reduce(
      rule!SJB_ER_replaceCurrencyValue,
      ri!data,
      { "\$", "€", "CHF", "EUR", "USD" }
      /* note that the dollar symbol in the list above includes the backslash escape character as */
      /* the dollar symbol has a speical menaing in regex expressions */
    )

    and the second rule looks like this:

    fn!regexreplaceall(
      concat("[0-9]*k", ri!currency),
      ri!data,
      " "
    )

    If you need any further explanation as to what's happening here please ask.

Children
No Data