cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
dwalker97
Helper II
Helper II

Removing white space after using the Replace() expression

I have a name: John Doe Ryan. I use [Replace(),string,'Doe','' ] to remove 'Doe' from the name. 

 

dwalker97_0-1620398342017.png

 

 

I am then left with John  Ryan (with an extra space in between). I then try to search for this name to match a John Ryan (one space), but the Contains condition is coming back as false as it is not an exact 'contains' match, as it picks up on the extra whitespace.

 

dwalker97_1-1620398390362.png

 

 

Is there a way to prevent this from happening in the Replace expression? Or is there a way around this when comparing both names in the Condition step?

 

Thanks

Daragh

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
eliotcole
Super User
Super User

Hi, @dwalker97  ... With no disrespect meant to the answers already given, I feel like you could possibly be putting a bandage over a wound that won't close, here. ( also, as an aside, @Paulie78 's regex stuff is brilliantly useful ! )

 

Solution

Assuming from your information you need to remove ANY name on the blacklist can be easily achieved with a filter:

  • Firstly - The 'Filter array' action checks the individual words in the name.If a word is blacklisted it is removed.
  • Secondly - The valid names are put back together again with spaces between them.

 

Blacklist RemovalBlacklist Removal

 

Details (etc) - All ignorable
The variables there are:
  • nameArrVAR - This is the name split into its separate parts.
  • removalsArrVAR - This is the list of items unwanted in the names.
You will note that all the items in the removalsArrVAR are lower case, this is intentional, because it's unclear whether the input name will be capitalised or not, because mistakes can be made.
 
The expressions in there are:
  1. nameArrVARsplit(triggerBody()['text'], ' ') - This splits everything that is separated by a space.
  2. Filter arraytoLower(trim(item())) - Purely for the check against the removalsArrVAR this takes the currently considered nameArrVAR item() and:
    1. as a precaution removes any errant spaces,
    2. and makes it lower case to enable the 'does not contain' functionality to work.
  3. nameVARjoin(body('Filter_array'), ' ') - This takes each remaining item in the now filtered array, and joins them as a string using a space to separate each item.
This uses the good work done here.
==================

 

More Advice and Questions (you can ignore this if you just want an elegant solution)

In order to help you ensure your data is smooth as silk going forward, it would be good to know:

  1. Patterns - Is there a pattern to the name removal? ( ie. is it always middle names? )
    1. If there's a pattern, does it account for abbherations? ( ie. hypenations, names with two surnames or first names, foreign names to your locale )
  2. Origin - Where is the name coming from? ( ie. is it another resource as just a pure text field? is it an O365 profile? )
  3. User Input? - Is this detail being input by a user directly?
    1. If so, are they internal staff, and do they have an account on file that you can automatically get this detail from?
    2. If not, is this being done in a web-form or PDF, and does it have a specific 'Name' field, like Cognito or Jot?
  4. Four - Text

But I have made a few broad assumptions ( like we all are - again, no harshness intended ) on some of thatfrom this reply:

@ Alastair I have stored the names to remove in an array, lets call it 'ArrayNames'. In this array I have 10 names stored which I want to remove from a table of 1000 rows of different full names. I am correctly finding and replacing all the names from full names, but the replace string is what's causing the issue as it is inserting an extra white space. 

 

Im not sure about the split function as the position of the name to remove will be different for each name.

 

Thanks a lot for your help with this

 

I would personally say that you should think about the data you're handling perhaps a little more ( not to say that you haven't purely as something to mull over 🙂 )  and consider:

  • Local "Data Protection" statutes on personal information.
  • Handling different types of names.
  • How the data is input.

Looking at those will perhaps make you consider different methods to how it's handled, which could make dealing with it in places like Power Automate much easier. I'm not saying that in a "address book in excel" sillyness statement, more just to help with how you process this kind of information. It's all useful in the end, after all. 🙂

View solution in original post

12 REPLIES 12
Alastair
Advocate II
Advocate II

Im sure someone smarter than me could tell you how to achieve that easily with the replace function.

 

As an alternative you could do split string expression (via space key) and reference the first and third values of the split expression to build the name correctly. 

Thanks for the reply. The thing is, what I have posted is a very small example of the overall problem I have.

 

There may be cases where the name has 2, 3, 4 or 5 values within the name. So I cant just reference the first and third values.

 

Thanks!

Alastair
Advocate II
Advocate II

How would you know which names in their full name are needed?  You have the same issue there with both the replace and split function.  In terms of the split expression, if you know the position of the names that you care about you can dynamically select the name by position.  

@Alastair I have stored the names to remove in an array, lets call it 'ArrayNames'. In this array I have 10 names stored which I want to remove from a table of 1000 rows of different full names. I am correctly finding and replacing all the names from full names, but the replace string is what's causing the issue as it is inserting an extra white space. 

 

Im not sure about the split function as the position of the name to remove will be different for each name.

 

Thanks a lot for your help with this

Alastair
Advocate II
Advocate II

For your array of names to remove have you tried adding a space to the end of them?  

Paulie78
Super User
Super User

Check out this blog post I did, towards the bottom there is an example of exactly what you are trying to do:

https://www.tachytelic.net/2021/04/power-automate-regex/

 

I suppose that will do! 😋

 

Thanks for your help

Thanks for sharing this @Paulie78 

eliotcole
Super User
Super User

Hi, @dwalker97  ... With no disrespect meant to the answers already given, I feel like you could possibly be putting a bandage over a wound that won't close, here. ( also, as an aside, @Paulie78 's regex stuff is brilliantly useful ! )

 

Solution

Assuming from your information you need to remove ANY name on the blacklist can be easily achieved with a filter:

  • Firstly - The 'Filter array' action checks the individual words in the name.If a word is blacklisted it is removed.
  • Secondly - The valid names are put back together again with spaces between them.

 

Blacklist RemovalBlacklist Removal

 

Details (etc) - All ignorable
The variables there are:
  • nameArrVAR - This is the name split into its separate parts.
  • removalsArrVAR - This is the list of items unwanted in the names.
You will note that all the items in the removalsArrVAR are lower case, this is intentional, because it's unclear whether the input name will be capitalised or not, because mistakes can be made.
 
The expressions in there are:
  1. nameArrVARsplit(triggerBody()['text'], ' ') - This splits everything that is separated by a space.
  2. Filter arraytoLower(trim(item())) - Purely for the check against the removalsArrVAR this takes the currently considered nameArrVAR item() and:
    1. as a precaution removes any errant spaces,
    2. and makes it lower case to enable the 'does not contain' functionality to work.
  3. nameVARjoin(body('Filter_array'), ' ') - This takes each remaining item in the now filtered array, and joins them as a string using a space to separate each item.
This uses the good work done here.
==================

 

More Advice and Questions (you can ignore this if you just want an elegant solution)

In order to help you ensure your data is smooth as silk going forward, it would be good to know:

  1. Patterns - Is there a pattern to the name removal? ( ie. is it always middle names? )
    1. If there's a pattern, does it account for abbherations? ( ie. hypenations, names with two surnames or first names, foreign names to your locale )
  2. Origin - Where is the name coming from? ( ie. is it another resource as just a pure text field? is it an O365 profile? )
  3. User Input? - Is this detail being input by a user directly?
    1. If so, are they internal staff, and do they have an account on file that you can automatically get this detail from?
    2. If not, is this being done in a web-form or PDF, and does it have a specific 'Name' field, like Cognito or Jot?
  4. Four - Text

But I have made a few broad assumptions ( like we all are - again, no harshness intended ) on some of thatfrom this reply:

@ Alastair I have stored the names to remove in an array, lets call it 'ArrayNames'. In this array I have 10 names stored which I want to remove from a table of 1000 rows of different full names. I am correctly finding and replacing all the names from full names, but the replace string is what's causing the issue as it is inserting an extra white space. 

 

Im not sure about the split function as the position of the name to remove will be different for each name.

 

Thanks a lot for your help with this

 

I would personally say that you should think about the data you're handling perhaps a little more ( not to say that you haven't purely as something to mull over 🙂 )  and consider:

  • Local "Data Protection" statutes on personal information.
  • Handling different types of names.
  • How the data is input.

Looking at those will perhaps make you consider different methods to how it's handled, which could make dealing with it in places like Power Automate much easier. I'm not saying that in a "address book in excel" sillyness statement, more just to help with how you process this kind of information. It's all useful in the end, after all. 🙂

Paulie78
Super User
Super User

Further to my previous response, you could also simply do:

 

replace(replace(replace(replace(replace(replace(replace(outputs('Name'), '  ', ' '), '  ', ' '), '   ', ' '), '    ', ' '), '     ', ' '), '      ', ' '), '       ', ' ')

 

This will replace all instances from 2 whites spaces up to seven white spaces, with a single white space in one expression.

eliotcole
Super User
Super User

If you're going to stick with purely addressing the text, for sure, @Paulie78  ... but for the sake of minimalism, wouldn't this be more efficient?

 

trim(join(union(array(' '), split(outputs('Name'), ' ')), ' '))

 

 

  1. split() - This creates an array entry for each entity in the name split by a space (including spaces).
  2. union() - This adds the split() array to an array consisting of a single space, it then discards any other space entries.
  3. join() - This makes a string by joining the entries in the union() array placing a space between them.
  4. trim() - This deletes any spaces from the start and end of the join() string.

 


@Paulie78 wrote:

Further to my previous response, you could also simply do:

 

replace(replace(replace(replace(replace(replace(replace(outputs('Name'), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' ')

 

 

This will replace all instances from 2 whites spaces up to seven white spaces, with a single white space in one expression.


 

I've tried this suggested formula to remove unwanted "whitespace" from within the text, which has had carriage return(newline) removed plus trimmed for whitespace both ends. It has no apparent effect, as I still had extended gaps between some text strings.

 

Perhaps those are caused by something else, like 'paragraph ghosts' or similar? 🤔

Helpful resources

Announcements

Power Platform Connections - Episode 7 | March 30, 2023

Episode Seven of Power Platform Connections sees David Warner and Hugo Bernier talk to Microsoft MVP Dian Taylor, alongside the latest news, product reviews, and community blogs.     Use the hashtag #PowerPlatformConnects on social media for a chance to have your work featured on the show!      Show schedule in this episode:    0:00 Cold Open 00:30 Show Intro 01:02 Dian Taylor Interview 18:03 Blogs & Articles 26:55 Outro & Bloopers    Check out the blogs and articles featured in this week’s episode:    https://francomusso.com/create-a-drag-and-drop-experience-to-upload-case-attachments @crmbizcoach https://www.youtube.com/watch?v=G3522H834Ro​/  @pranavkhuranauk https://github.com/pnp/powerapps-designtoolkit/tree/main/materialdesign%20components @MMe2K​ https://2die4it.com/2023/03/27/populate-a-dynamic-microsoft-word-template-in-power-automate-flow/ @StefanS365 https://d365goddess.com/viva-sales-administrator-settings/ @D365Goddess https://marketplace.visualstudio.com/items?itemName=megel.mme2k-powerapps-helper#Visualize_Dataverse_Environments @MMe2K    Action requested:  Feel free to provide feedback on how we can make our community more inclusive and diverse.    This episode premiered live on our YouTube at 12pm PST on Thursday 30th March 2023.    Video series available at Power Platform Community YouTube channel.    Upcoming events:  Business Applications Launch – April 4th – Free and Virtual! M365 Conference - May 1-5th - Las Vegas Power Apps Developers Summit – May 19-20th - London European Power Platform conference – Jun. 20-22nd - Dublin Microsoft Power Platform Conference – Oct. 3-5th - Las Vegas    Join our Communities:  Power Apps Community Power Automate Community Power Virtual Agents Community Power Pages Community    If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for the Power Platform Connections team, please let us know. We will do our best to address all your requests or questions.       

Announcing | Super Users - 2023 Season 1

Super Users – 2023 Season 1    We are excited to kick off the Power Users Super User Program for 2023 - Season 1.  The Power Platform Super Users have done an amazing job in keeping the Power Platform communities helpful, accurate and responsive. We would like to send these amazing folks a big THANK YOU for their efforts.      Super User Season 1 | Contributions July 1, 2022 – December 31, 2022  Super User Season 2 | Contributions January 1, 2023 – June 30, 2023    Curious what a Super User is? Super Users are especially active community members who are eager to help others with their community questions. There are 2 Super User seasons in a year, and we monitor the community for new potential Super Users at the end of each season. Super Users are recognized in the community with both a rank name and icon next to their username, and a seasonal badge on their profile.  Power Apps  Power Automate  Power Virtual Agents  Power Pages  Pstork1*  Pstork1*  Pstork1*  OliverRodrigues  BCBuizer  Expiscornovus*  Expiscornovus*  ragavanrajan  AhmedSalih  grantjenkins  renatoromao    Mira_Ghaly*  Mira_Ghaly*      Sundeep_Malik*  Sundeep_Malik*      SudeepGhatakNZ*  SudeepGhatakNZ*      StretchFredrik*  StretchFredrik*      365-Assist*  365-Assist*      cha_cha  ekarim2020      timl  Hardesh15      iAm_ManCat  annajhaveri      SebS  Rhiassuring      LaurensM  abm      TheRobRush  Ankesh_49      WiZey  lbendlin      Nogueira1306  Kaif_Siddique      victorcp  RobElliott      dpoggemann  srduval      SBax  CFernandes      Roverandom  schwibach      Akser  CraigStewart      PowerRanger  MichaelAnnis      subsguts  David_MA      EricRegnier  edgonzales      zmansuri  GeorgiosG      ChrisPiasecki  ryule      AmDev  fchopo      phipps0218  tom_riha      theapurva  takolota     Akash17  momlo     BCLS776  Shuvam-rpa     rampprakash  ScottShearer     Rusk  ChristianAbata     cchannon  Koen5     a33ik  Heartholme     AaronKnox  okeks      Matren   David_MA     Alex_10        Jeff_Thorpe        poweractivate        Ramole        DianaBirkelbach        DavidZoon        AJ_Z        PriyankaGeethik        BrianS        StalinPonnusamy        HamidBee        CNT        Anonymous_Hippo        Anchov        KeithAtherton        alaabitar        Tolu_Victor        KRider        sperry1625        IPC_ahaas      zuurg    rubin_boer   cwebb365   Dorrinda   G1124   Gabibalaban   Manan-Malhotra   jcfDaniel   WarrenBelz   Waegemma   drrickryp   GuidoPreite    If an * is at the end of a user's name this means they are a Multi Super User, in more than one community. Please note this is not the final list, as we are pending a few acceptances.  Once they are received the list will be updated. 

Register now for the Business Applications Launch Event | Tuesday, April 4, 2023

Join us for an in-depth look into the latest updates across Microsoft Dynamics 365 and Microsoft Power Platform that are helping businesses overcome their biggest challenges today.   Find out about new features, capabilities, and best practices for connecting data to deliver exceptional customer experiences, collaborating, and creating using AI-powered capabilities, driving productivity with automation—and building towards future growth with today’s leading technology.   Microsoft leaders and experts will guide you through the full 2023 release wave 1 and how these advancements will help you: Expand visibility, reduce time, and enhance creativity in your departments and teams with unified, AI-powered capabilities.Empower your employees to focus on revenue-generating tasks while automating repetitive tasks.Connect people, data, and processes across your organization with modern collaboration tools.Innovate without limits using the latest in low-code development, including new GPT-powered capabilities.    Click Here to Register Today!    

Check out the new Power Platform Communities Front Door Experience!

We are excited to share the ‘Power Platform Communities Front Door’ experience with you!   Front Door brings together content from all the Power Platform communities into a single place for our community members, customers and low-code, no-code enthusiasts to learn, share and engage with peers, advocates, community program managers and our product team members. There are a host of features and new capabilities now available on Power Platform Communities Front Door to make content more discoverable for all power product community users which includes ForumsUser GroupsEventsCommunity highlightsCommunity by numbersLinks to all communities Users can see top discussions from across all the Power Platform communities and easily navigate to the latest or trending posts for further interaction. Additionally, they can filter to individual products as well.   Users can filter and browse the user group events from all power platform products with feature parity to existing community user group experience and added filtering capabilities.     Users can now explore user groups on the Power Platform Front Door landing page with capability to view all products in Power Platform.      Explore Power Platform Communities Front Door today. Visit Power Platform Community Front door to easily navigate to the different product communities, view a roll up of user groups, events and forums.

Microsoft Power Platform Conference | Registration Open | Oct. 3-5 2023

We are so excited to see you for the Microsoft Power Platform Conference in Las Vegas October 3-5 2023! But first, let's take a look back at some fun moments and the best community in tech from MPPC 2022 in Orlando, Florida.   Featuring guest speakers such as Charles Lamanna, Heather Cook, Julie Strauss, Nirav Shah, Ryan Cunningham, Sangya Singh, Stephen Siciliano, Hugo Bernier and many more.   Register today: https://www.powerplatformconf.com/   

Users online (1,665)