Jump to content

Can you explane string ?


Recommended Posts

i opened one of the cods found here which converts what ever script filename is into a string.

for example if my script filename is "test.au3" then this variable will be "test"

StringRegExpReplace(@ScriptName, "\.[^\.]*$", "")

My question is:

i almost want to say %&$#&^%$ is this ? but dont want to get in trouble so ill ask this:

Whats all those "\.[^\.]*$" and what they mean and how they work ?

All i know when it comes to directories, is that if you put ".\whatever" means it will go one directory UP like CMD, but this is like a whole language of characters i dont get.

Link to comment
Share on other sites

Did did you read the topic czardas suggested? Search google for topics about 'regular expressions', there it will give you a definition of what precisely a regular expression is, not a 'bunch of random characters thrown together without thought!'

Edited by guinness

UDF List:

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_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: 22/04/2018

Link to comment
Share on other sites

Yes, it says : Any string of characters other than backslash or dot appearing after a backsalsh or dot until the end of the line.

I had to think about this a bit - now I think it says : Any string of characters other than a dot appearing after a dot until the end of the line. :graduated:

So for example:

#include <Array.au3>
$regexp = StringRegExp("path\..\app.exe", "\.[^\.]*$", 3)
Edited by czardas
Link to comment
Share on other sites


Those "weird characters" are a pattern to tell the regular expression engine how to modify the string, to strip the extension of a file name in this case.

However the pattern is a little bit off, here is my take on it.


The pattern starts to match a dot (.), but since the dot is meta-character (modifier) in a regular expression it needs to be escaped, this is done with a backslash (\), so we get:


The next part matches anything that is not a dot.

Anything inside of square brackets is a character set and it will match any character in the set, but in this case the caret (^) tells the engine to match any charter NOT in the set.

The plus (+) after the character set makes the engine match as many characters as possible, but only the ones in the character set and in a continuous stream.

* Note that the dot (.) has not been escaped here, this is because inside the character set it is not a meta-character.


The dollar sign ($) represents the end of the string so the pattern will only be valid at the end of the string.


So the pattern matches the last dot and the characters behind it until the end of the string.

Here are some resources:






Hope this helps clear it up a little.

Edited by Robjong
Link to comment
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

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...