Regular expression & arrayContains

Options
OlivierAb
OlivierAb Registered Posts: 15 ✭✭✭✭

Hello,

I want to check if a variable contains a letter. For this I want to use a formula in a prepare recipe

Here my code :

if(arrayContains([A-Z], strval('name_var')),1,2)

Output is always '2' even when there is a letter in the variable i'm checking

Thank you, Olivier

Best Answer

  • Ignacio_Toledo
    Ignacio_Toledo Dataiku DSS Core Designer, Dataiku DSS Core Concepts, Neuron 2020, Neuron, Registered, Dataiku Frontrunner Awards 2021 Finalist, Neuron 2021, Neuron 2022, Frontrunner 2022 Finalist, Frontrunner 2022 Winner, Dataiku Frontrunner Awards 2021 Participant, Frontrunner 2022 Participant, Neuron 2023 Posts: 411 Neuron
    Answer ✓
    Options

    You are right, I forgot the '.*' at the end of the expression.

    Happy to help and have a great week! Ignacio

Answers

  • Ignacio_Toledo
    Ignacio_Toledo Dataiku DSS Core Designer, Dataiku DSS Core Concepts, Neuron 2020, Neuron, Registered, Dataiku Frontrunner Awards 2021 Finalist, Neuron 2021, Neuron 2022, Frontrunner 2022 Finalist, Frontrunner 2022 Winner, Dataiku Frontrunner Awards 2021 Participant, Frontrunner 2022 Participant, Neuron 2023 Posts: 411 Neuron
    edited July 17
    Options

    Hi @OlivierAb

    My impression from the documentation is that arrayContains doesn't work with regular expressions, which is what you are trying to do apparently.

    What might work is this:

    if(arrayLen(match(column, ".*([A-Za-z])")) > 0, 1, 2)

    where you should replace column with the name of your column of interest.

    If I understood your problem wrongly please let me know! Cheers

  • OlivierAb
    OlivierAb Registered Posts: 15 ✭✭✭✭
    Options

    Thanks a lot Ignacio !

    it works with just a little adjustment. Indeed, ".*" is missing

    the final working formula is "if(arrayLen(match(column, ".*([A-Za-z]).*")) > 0, 1, 2)"

    Thanks again for your reactivity, Olivier

Setup Info
    Tags
      Help me…