Jump to content

StringRegExp expression help


AutID
 Share

Go to solution Solved by Malkey,

Recommended Posts

Hello,

I have some strings and they are foramtted like this:

random1 - some random text

random2 - some other random text

againrandom - again random text

etc...etc

How can i delete everything from the minus sign and behind?

so a line like this: randomstart - some other random things become randomstart.

I know this must be easy but i never understood @replaces.

Cheers

 

Link to comment
Share on other sites

Example with Regex

#include <Array.au3>

$a = "randomstart - some other random things become randomstart." & @CRLF & "random2 - something more of random"
$Result = StringRegExp($a, "(?m)^([^ \-]+)", 3)
_ArrayDisplay($Result, "Result")

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Link to comment
Share on other sites

  • Solution

Using StringRegExpReplace example.

Local $a = "randomstart - some other random things become randomstart." & @CRLF & _
        "random2 - something more of random" & @CRLF & _
        "againrandom - again random text" & @CRLF & _
        "etc...etc"

; Match everything you want to delete.
; \h* - Match all horizontal white spaces before a minus sign (if any Horiz. white spaces exist),
; -   - match the minus sign, and
; \V* - match all non-vertical white space characters (if any non-vert. white spaces exist).
; and replace the entire match with nothing.
$Result = StringRegExpReplace($a, "\h*-\V*", "")
;or
;$Result = StringRegExpReplace($a, "(?m)\h*-.*$", "") ; Using (?m) Multiline: ^ and $ matching start and end of line.

ConsoleWrite($Result & @LF)

#cs Returns:-
randomstart
random2
againrandom
etc...etc
#ce
Link to comment
Share on other sites

Thank you everyone.

I wanted to avoid using stringsplit. Malkey's solution seems the best one that fits to my needs.

 

I enjoy regular expressions, but avoiding StringSplit() with no reason as to why is kind of silly.

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

I enjoy regular expressions, but avoiding StringSplit() with no reason as to why is kind of silly.

Silly things are for silly people, which i am not. But i am not sure if someone else here is. Since i am avoiding it there is a reason. And i didn't feel that i should explain it.

But if you can't live with that then i will let you know.

I don't want to turn a string into an array without having to. And that is also the reason why i marked Malkey's solution as solved and not Phoenixs' since they are both regular expressions.

Edited by AutID
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
 Share

  • Recently Browsing   0 members

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