cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
FlowNick
Advocate I
Advocate I

Replace Newline in Flow Expression

I have a flow that is parsing a plain text email and creating an item in a SharePoint list.

 

Everything works great except for when a user enters data with a newline or carriage return (which I don't want in the SP list). I can not figure out how to replace a new line (\n) or any other non-printable character.

 

I have tried the obvious...

 

replace(body('Html_to_text'), '\n', '')

I have tried what others claim to be the only solution...

 

replace(body('Html_to_text'), '
', '')

As well as several other options (e.g.; character codes)...

 

replace(body('Html_to_text'), Char(13), '')

And nothing works (even when the run doesn't generate an error, the new lines are not replaced). I am able to replace printable characters without issue, it's just the non-printable characters.

 

So, am I missing something or is it impossible to do what I'm trying to do?

1 ACCEPTED SOLUTION

Accepted Solutions

Thanks Michael.

 

Here's what I'm currently using as a workaround:

 

uriComponentToString(replace(uriComponent(body('Html_to_text')), '%0A', ''))

I figured, since I can replace printable characters, I'd just temporarily convert the string to all printable characters, replace them, then convert it back. It's hack-ish and inefficient but working.

 

I look forward to seeing your results.

View solution in original post

14 REPLIES 14
v-micsh-msft
Community Support
Community Support

Hi @FlowNick,

 

Thanks for posting.

I will make some tests and share the results.

Regards,

Michael

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Thanks Michael.

 

Here's what I'm currently using as a workaround:

 

uriComponentToString(replace(uriComponent(body('Html_to_text')), '%0A', ''))

I figured, since I can replace printable characters, I'd just temporarily convert the string to all printable characters, replace them, then convert it back. It's hack-ish and inefficient but working.

 

I look forward to seeing your results.

View solution in original post

Thanks FlowNick - workaround works perfectly!

Saver of the day. this works awesome.

Megasween
Advocate II
Advocate II

I think I just found a different work around.  needed to replay new lines with <br> html tag.  I initalied a variable string.  In the string I hit enter so the only character in the string was a new line.  I then used the dynamic variable in the experssion.

Anonymous
Not applicable

Hello,

 

I'm havin gsome trouble with the same. I'm trying to leverage the solution found but dont know what the "body('Html_to_text')" is referring to. Can someone explain that funciton? Thanks!

Hi @Anonymous,

 

body('Html_to_text')

represents data converted through the Content Conversion connector (docs).

Anonymous
Not applicable

Thanks for the reply Nick! i got it figured out.

It works!! You saved me a lot of time and I'm really thankful  Cat Happy


@FlowNick wrote:

Thanks Michael.

 

Here's what I'm currently using as a workaround:

 

uriComponentToString(replace(uriComponent(body('Html_to_text')), '%0A', ''))

I figured, since I can replace printable characters, I'd just temporarily convert the string to all printable characters, replace them, then convert it back. It's hack-ish and inefficient but working.

 

I look forward to seeing your results.


I hate to Necro, so sorry in advance. 

 

I am using a similar bit of code to remove line breaks and apostrophes.

uriComponentToString(replace(replace(uriComponent(body('Html_to_text')), '%0A', ''), '%27',''))

This works to put evrything on a single line and removes the characters i dont need. However i cannot seem to get my substrings to run as i keep getting the following message

flowerror.PNG

 

@FlowNick mentioned that he " temporarily convert the string to all printable characters, replace them, then convert it back." . Is there a step to convert it back that i am missing?

 

 

Thanks @Megasween  thanks works perfect. A recap for others:

  1. Initialize a variable of type string, e.g. named NewLine
    1. In the Value field hit Enter, you should see the field growing vertical
  2. Use replace( 'your text with newlines in it', variables('NewLine'), '')

I tried reversing the solution - using decodeUriComponent to get the newline for the split. Works as well.

 

replace(body('Html_to_text'), decodeUriComponent('%0A'), '')
manvinder277
Frequent Visitor

use concat and {" \n\n"} ... yes with double quotes

example >>> concat('string 1',{" \n\n"},'String 2')

 

This will output

string1

string2

That is great, I have been trying to fix the seemingly random addition of non printable characters for ages.  Agree it isn't pretty but definitely did the job.  Thanks FlowNick!

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Top Solution Authors
Users online (1,563)