web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / replace array of chara...
Power Automate
Answered

replace array of characters with another array in PAD

(0) ShareShare
ReportReport
Posted on by 23

Hey , i'm parsing some e-mails to put the data into an..wolder erp .
The trouble is that some data has special characters that need to be replaced with their..latin corespondent. 
What would be the easiest way to replace an array of characters with their corespondent..for about 10-20 variables ? 

 

diacritice_romanesti = { "ș": "s", "ț": "t", "â": "a", "î": "b", "ă": "a", }

diacritice_franceze = { "é": "e", "è": "e", "ê": "e", "ç": "c", "à": "a", "â": "a", "ù": "u", "û": "u", "ü": "u", "œ": "oe", "æ": "ae", }

diacritice_maghiare = { "á": "a", "é": "e", "í": "i", "ó": "o", "ö": "ö", "ő": "ő", "ú": "u", "ü": "ü", "ű": "ű"}

....and these are only 3 languages, probably more to come. 


Those ș,ț,â, etc are not allowed for example in name, surname, but they are allowed into street name and city name..

It there a quick way beside...an external python ? 
Thank you 

 

 

I have the same question (0)
  • Agnius Bartninkas Profile Picture
    Most Valuable Professional on at

    The quickest way without running a Python or a C# script would be building a list of character pairs and using a loop to replace them one by one. You can include regex as a way to match several characters to replace (as in having an array of characters that need to be replaced), but you can only provide a single literal character to replace with.

     

    So, you can do [à,a,â] in Replace text with regular expressions enabled and replace it with a. But doing that would require manually setting all those values.

    So, if I were you, I would build a list of lists, or a list of objects and loop through them. You could build it in JSON and then use Convert JSON to custom object to get something you can loop through.

     

    You could build it like this:

    [
     {
     "Replace": ["à", "a", "â"],
     "ReplaceWith": "a"
     }
    ]

    (obviously, adding more characters)

    Then build a For each loop to iterate through it, and a nested loop inside it to iterate through the characters to replace.

    -------------------------------------------------------------------------
    If I have answered your question, please mark it as the preferred solution. If you like my response, please give it a Thumbs Up.

    I also provide paid consultancy and development services using Power Automate. If you're interested, DM me and we can discuss it.

  • Verified answer
    ditoiuc Profile Picture
    23 on at

    Ty Agnius, i went to the python way , in case anyone needs it here it is : 

     

    1. Saved the body of mail into a file

    2. Running the bellow python script to replace the characters and overwrite the original file.

    ditoiuc_0-1693830003948.png

     

     

     

    # Import the `sys` and `os` modules.
    import sys
    import os

    # Define the `remove_diacritics()` function.
    def remove_diacritics(text):
    """
    This function removes diacritics from text and replaces them with their Latin equivalent.

    Arguments:
    text: The text from which the diacritics will be removed.

    Returns:
    The text without diacritics.
    """

    # Create a list of all Romanian diacritics, both lowercase and uppercase.
    diacritics = ["ţ","â", "ă", "î", "ș", "ț", "Ș", "Ț", "á", "é", "í", "ó", "ő", "ú", "ü", "ű"]

    # Create a list of all the Latin equivalents of the diacritics.
    no_diacritics = ["t","a", "a", "i", "s", "t", "S", "T", "a", "e", "i", "o", "o", "u", "u", "u"]

    # Replace all diacritics with their Latin equivalents.
    for i in range(len(text)):
    if text[i] in diacritics:
    text = text[:i] + no_diacritics[diacritics.index(text[i])] + text[i + 1:]

    return text


    # Define the `main()` function.
    def main(filename):
    # Read the input file.
    with open(os.path.join("New", filename), "r", encoding="utf-8") as f:
    text = f.read()

    # Remove the diacritics from the text.
    text_without_diacritics = remove_diacritics(text)

    # Write the text without diacritics back to the original file.
    with open(os.path.join("New", filename), "w", encoding="utf-8") as f:
    f.write(text_without_diacritics)


    # Check if the input file exists.
    if not os.path.exists(os.path.join("New", filename)):
    raise FileNotFoundError(f"The input file {filename} does not exist.")

    # Call the main function with the input file name as an argument.
    main(filename)

  • Agnius Bartninkas Profile Picture
    Most Valuable Professional on at

    Cool, thanks for sharing. You can mark your own reply as the solution to this topic, so it is easier for others to find it.

    I would suggest translating the line comments to English. At least in your message here 🙂

  • ditoiuc Profile Picture
    23 on at

    True, translated the comments, ty for the suggestion 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the April Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Vish WR Profile Picture

Vish WR 632

#2
Haque Profile Picture

Haque 458

#3
Valantis Profile Picture

Valantis 357

Last 30 days Overall leaderboard