Sign in to follow this  
Followers 0
dirty

Can you explane string ?

7 posts in this topic

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.

Share this post


Link to post
Share on other sites



so ure saying that "\.[^\.]*$" is something connected to a function and not just some weird characters that do something with the string ?

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

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

_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

#5 ·  Posted (edited)

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)
_ArrayDisplay($regexp)
Edited by czardas

Share this post


Link to post
Share on other sites

hmm interesting.

thanks !

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Hi,

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:

http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm

http://www.regular-expressions.info/

https://developer.mozilla.org/en/Javascript/Guide/Regular_Expressions

http://www.zytrax.com/tech/web/regex.htm

http://www.php.net/manual/en/pcre.pattern.php

Hope this helps clear it up a little.

Edited by Robjong

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