Sign in to follow this  
Followers 0
golfinhu

replace special characters?

9 posts in this topic

#1 ·  Posted (edited)

hi people, i need a little help...

how can I replace words with accent on non-accented words?

i tryed this:

StringRegExpReplace("áéíóúãõâêîôû", "[áéíóúãõâêîôû]", "[aeiou]")

I do not know the correct expression, can someone help me please?

thanks!

Edited by golfinhu

Share this post


Link to post
Share on other sites



$sResult = _StringReplaceAccend("áéíóúãõâêîôû")
ConsoleWrite($sResult & @CRLF)


Func _StringReplaceAccend($sString)
 Local $Pattern[5][2] = [["[áãâ]", "a"], ["[éê]", "e"], ["[íî]", "i"], ["[óõô]", "o"], ["[úû]", "u"]]
 For $i = 0 To 4
  $sString = StringRegExpReplace($sString, $Pattern[$i][0], $Pattern[$i][1])
 Next
 Return $sString
EndFunc


Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe
trying to produce bigger and better idiots.
So far, the Universe is winning.

Share this post


Link to post
Share on other sites

$sResult = _StringReplaceAccend("áéíóúãõâêîôû")
ConsoleWrite($sResult & @CRLF)


Func _StringReplaceAccend($sString)
 Local $Pattern[5][2] = [["[áãâ]", "a"], ["[éê]", "e"], ["[íî]", "i"], ["[óõô]", "o"], ["[úû]", "u"]]
 For $i = 0 To 4
  $sString = StringRegExpReplace($sString, $Pattern[$i][0], $Pattern[$i][1])
 Next
 Return $sString
EndFunc

thankyou so much!

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Func _StringReplaceAccend($sString)

This function can be handy!

Thanks for sharing.

But my question is:

Can it be done by only one RegExpReplace? 

Because for large texts this methos is non optimal for speed/memory resources.

Edited by Zedna

Share this post


Link to post
Share on other sites

Func _StringReplaceAccend($sString)

Local $Pattern[12][2] = [["[áâàäã]", "a"], ["[éêèë]", "e"], ["[íîìï]", "i"], ["[óôòöõ]", "o"], ["[úûùü]", "u"], ["[ÁÂÀÄÃ]", "A"], ["[ÉÊÈË]", "E"], ["[ÍÎÌÏ]", "I"], ["[ÓÔÒÖÕ]", "O"], ["[ÚÛÙÜ]", "U"], ["[ýÿ]", "y"], ["[ÝŸ]", "Y"]]

For $i = 0 To 11

$sString = StringRegExpReplace($sString, $Pattern[$i][0], $Pattern[$i][1])

Next

Return $sString

EndFunc

Share this post


Link to post
Share on other sites

But my question is:

Can it be done by only one RegExpReplace?

Because for large texts this methos is non optimal for speed/memory resources.

Sadly no. A regexp pattern for this case isn't that hard, it's the replacing that can't be grouped.

[center]Spiderskank Spiderskank[/center]GetOpt Parse command line options UDF | AU3Text Program internationalization UDF | Identicon visual hash UDF

Share this post


Link to post
Share on other sites

I improved the function written by funkey by expanding the range of accented charachters it can replace.
 

$stest = "á|â|à|å|ä ð|é|ê|è|ë í|î|ì|ï ó|ô|ò|ø|õ|ö ú|û|ù|ü æ ç ß abc ABC 123"
$stest = _StringReplaceAccend($stest)
ConsoleWrite(@LF & @LF & "+>" & $stest & @LF & @LF)

Func _StringReplaceAccend($sString)
    Local $exp, $rep
    Local $pattern[27][2] = [ _
            ["[ÀÁÂÃÅÆ]", "A"],["[àáâãå]", "a"],["Ä", "Ae"],["[æä]", "ae"], _
            ["Þ", "B"],["þ", "b"], _
            ["Ç", "C"],["ç", "c"], _
            ["[ÈÉÊË]", "E"],["[èéêë]", "e"], _
            ["[ÌÍÎÏ]", "I"],["[ìíîï]", "i"], _
            ["Ñ", "N"],["ñ", "n"], _
            ["[ÒÓÔÕÖØ]", "O"],["[ðòóôõöø]", "o"], _
            ["[Š]", "S"],["[š]", "s"], _
            ["ß", "Ss"], _
            ["[ÙÚÛ]", "U"],["[ùúû]", "u"],["Ü", "Ue"],["ü", "ue"], _
            ["Ý", "Y"],["[ýýÿ]", "y"], _
            ["Ž", "Z"],["ž", "z"]]

    For $i = 0 To (UBound($pattern) - 1)
        $exp = $pattern[$i][0]
        If $exp = "" Then ContinueLoop
        $rep = $pattern[$i][1]

        $sString = StringRegExpReplace($sString, $exp, $rep)
        If @error == 0 And @extended > 0 Then
            ConsoleWrite($sString & @LF & "--> " & $exp & @LF)
        EndIf
    Next

    Return $sString
EndFunc   ;==>_StringReplaceAccend

Share this post


Link to post
Share on other sites

mvk25,

You would have been better off posting in the Examples section and having a link to this thread.


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0