Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
KilleenJeffrey
Frequent Visitor

M Language Remove Duplicate or Repeating Spaces or Characters

I couldn't find a example for how to do this (Removing Repeating Spaces) so I am posting this.  It would work for any repeating Characters beyond spaces.

 

let
    Source = "abc   ABC       DEF ABC",
    StringToCleanOfExtraSpaces = Source,
    SourceSingleSpaced = Text.Combine(
                                List.RemoveNulls(
                                    List.Transform(
                                        List.Positions(
                                            Text.ToList(
                                                StringToCleanOfExtraSpaces)), each 
                                                                                if _ = 0 then Text.Range(StringToCleanOfExtraSpaces, _ , 1) 
                                                                                else if Text.Range(StringToCleanOfExtraSpaces, _ -1,1)=" " and Text.Range(StringToCleanOfExtraSpaces, _ ,1)=" " then null 
                                                                                else Text.Range(StringToCleanOfExtraSpaces, _, 1))))
in
    SourceSingleSpaced

Screenshot 2022-09-07 152715.jpg

2 ACCEPTED SOLUTIONS
jbwtp
Memorable Member
Memorable Member

Hi @KilleenJeffrey,

 

There is no stock function to remove repeating spaces. If you only concerned about spaces, the function can be shorter, but not much:

let
    Source = "abc   ABC       DEF ABC",
    StringToCleanOfExtraSpaces = Source,
    SourceSingleSpaced = Text.Combine(
                            List.Accumulate(
                                    Text.ToList(StringToCleanOfExtraSpaces), {}, (a, n)=> if n = " " and List.Last(a) = " " then a else a & {n}))
in
    SourceSingleSpaced

Kind regards,

John

View solution in original post

Here are a couple of shorter options.

let
    StringToClean = "  abc   ABC       DEF ABC ",
    SplitText = Text.Split(StringToClean, " "),
    RemoveBlanks = List.Select(SplitText, each _ <> ""),
    Result = Text.Combine(RemoveBlanks, " ")
in
    Result

This is a slightly simplified version of this post (only works for spaces).

 

let
    StringToClean = "  abc   ABC       DEF ABC ",
    Result = Text.Combine(Splitter.SplitTextByWhitespace()(Text.Trim(StringToClean)), " ")
in
    Result

Credit to Frank Tonsen's comment on this post.

View solution in original post

3 REPLIES 3
jbwtp
Memorable Member
Memorable Member

Hi @KilleenJeffrey,

 

There is no stock function to remove repeating spaces. If you only concerned about spaces, the function can be shorter, but not much:

let
    Source = "abc   ABC       DEF ABC",
    StringToCleanOfExtraSpaces = Source,
    SourceSingleSpaced = Text.Combine(
                            List.Accumulate(
                                    Text.ToList(StringToCleanOfExtraSpaces), {}, (a, n)=> if n = " " and List.Last(a) = " " then a else a & {n}))
in
    SourceSingleSpaced

Kind regards,

John

Here are a couple of shorter options.

let
    StringToClean = "  abc   ABC       DEF ABC ",
    SplitText = Text.Split(StringToClean, " "),
    RemoveBlanks = List.Select(SplitText, each _ <> ""),
    Result = Text.Combine(RemoveBlanks, " ")
in
    Result

This is a slightly simplified version of this post (only works for spaces).

 

let
    StringToClean = "  abc   ABC       DEF ABC ",
    Result = Text.Combine(Splitter.SplitTextByWhitespace()(Text.Trim(StringToClean)), " ")
in
    Result

Credit to Frank Tonsen's comment on this post.

For spaces that last example is slick

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors