cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
skini76
Level: Powered On

How to use regular expression to compare two strings in PowerApp ?

string1 = "Banana,Apple,Orange"

string2 = "Apple, Grapes, Plum"

 

In the above case, Apple is common between two strings, so the result of comparison should be True.

Can we achieve this using regular expression in PowerApp ?

 

7 REPLIES 7
Super User
Super User

Re: How to use regular expression to compare two strings in PowerApp ?

@skini76 

You can do this another way.  Regular expressions won't work here.

 

Put this code in your app.  You have the option of returning the values as a Collection (mySolutionCollection) or a text variable (mySolutionText).

 

//create collections
ClearCollect(myCol1,Split("Apples, Oranges, Bananas", ","));
ClearCollect(myCol2,Split("Apples, Oranges, Plum",","));

//get matches stored in a Collection
ClearCollect(
    mySolutionCollection,
        ShowColumns(
            Filter(
                AddColumns(
                myCol1,
               "MatchFound",If(!IsBlank(LookUp(myCol2,Result=myCol1[@Result])),true,false)
            ),
           MatchFound=true),
       "Result")
);

//get matches stored in a SET variable
Set(
    mySolutionText,
    Left(
        Concat(mySolutionCollection,Result&","),
        Len(Concat(mySolutionCollection,Result&","))-1
    )
)

 

---
Please click "Accept as Solution" if my post answered your question so that others may find it more quickly. If you found this post helpful consider giving it a "Thumbs Up."

Microsoft v-siky-msft
Microsoft

Re: How to use regular expression to compare two strings in PowerApp ?

Hi @skini76 ,

 

I don't think that's going to happen.

As an alternative workaround:

1. split the string by "," and check if the item in string A exists in String B

 

ClearCollect(myCol1,Split("Apples, Oranges, Bananas", ","));
ClearCollect(myCol2,Split("Apples, Grapes, Plum",","));
ClearCollect(myCol3,ForAll(myCol1, Result in myCol2))

 

2. if there is a true in mycol3, that mean there is a match.

Set true in myCol3 to Text of label.

Best regards,

Sik

 

skini76
Level: Powered On

Re: How to use regular expression to compare two strings in PowerApp ?

thanks, how to read the content of myCol3 ? myCol3(0).Value ? What is the syntax ?

Microsoft v-siky-msft
Microsoft

Re: How to use regular expression to compare two strings in PowerApp ?

Hi @skini76 ,

 

Set text property of Label:

true in myCol3.Value

If there is a match, mycol3 collection will have a "true" value, so we just check if "true" is in the mycol3.

Sik

Highlighted
skini76
Level: Powered On

Re: How to use regular expression to compare two strings in PowerApp ?

I tried the below e.g., it is not working

 

ClearCollect(
    myCol1,
    Split(
        "Private, Public, Foreign, Small Finance, Local, Payments",
        ","
    )
);
ClearCollect(
    myCol2,
    Split(
        "Foreign, Private, BigData",
        ","
    )
);
ClearCollect(myCol3,ForAll(myCol1, Result in myCol2));

skini76
Level: Powered On

Re: How to use regular expression to compare two strings in PowerApp ?

I tried the below e.g using your logic, but result is not as expected.

 

//create collections
ClearCollect(myCol1,Split("Private, Public, Forign, Local, Payment", ","));
ClearCollect(myCol2,Split("Public, Local, Plum", ","));
//get matches stored in a Collection
ClearCollect(
    mySolutionCollection,
        ShowColumns(
            Filter(
                AddColumns(
                myCol1,
               "MatchFound",If(!IsBlank(LookUp(myCol2,Result=myCol1[@Result])),true,false)
            ),
           MatchFound=true),
       "Result")
);
//get matches stored in a SET variable
Set(
    mySolutionText,
    Left(
        Concat(mySolutionCollection,Result&","),
        Len(Concat(mySolutionCollection,Result&","))-1
    )
); Notify (mySolutionText);
Microsoft v-siky-msft
Microsoft

Re: How to use regular expression to compare two strings in PowerApp ?

@skini76 

Just modify as below, add a space behind the comma.

ClearCollect(
    myCol1,
    Split(
        "Private, Public, Foreign, Small Finance, Local, Payments",
        ", "
    )
);
ClearCollect(
    myCol2,
    Split(
        "Foreign, Private, BigData",
        ", "
    )
);
ClearCollect(myCol3,ForAll(myCol1, Result in myCol2));

Sik

Helpful resources

Announcements
thirdimage

Power Apps Super User Class of 2020

Check it out!

thirdimage

New Badges

Check it out!

thirdimage

Power Apps Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

SecondImage

Difinity Conference

The largest Power BI, Power Platform, and Data conference in New Zealand

Top Solution Authors
Top Kudoed Authors
Users online (5,222)