Kiti Posted June 13, 2009 Share Posted June 13, 2009 Hello! I want to pull out the number "26", but it doesn't work:$string = "Total 26" $result = StringRegExp($string, '([/z][1-9](1,2})(?:Total )', 1) If @error == 0 Then MsgBox(0, "", $result[0]) EndIfI don't really know how to put a non-capturing group capture what it finds after the group. I've tried "[/z]" in the beginning but it doesn't solve the problem. Think outside the box.My Cool Lego Technic Website -- see walking bipeds and much more!My YouTube account -- see cool physics experimentsMy scripts:Minesweeper bot: Solves advanced level in 1 second (no registry edit), very improved GUI, 4 solving stylesCan't go to the toilet because of your kids closing your unsaved important work? - Make a specific window uncloseableCock Shooter Bot -- 30 headshots out of 30 Link to comment Share on other sites More sharing options...
oMBRa Posted June 13, 2009 Share Posted June 13, 2009 $string = "Total 26" $result = StringRegExp($string, '(?:\b.*\b\s*)(\d+)', 1) If @error == 0 Then MsgBox(0, "", $result[0]) EndIf /Z matches at the end of the string, and why are you doing it from right to left? Link to comment Share on other sites More sharing options...
MrCreatoR Posted June 13, 2009 Share Posted June 13, 2009 Try this:$sString = "Total 26" $sResult = StringRegExpReplace($sString, '(?:Total )([1-9]{1,2})$', '\1') If @extended > 0 Then MsgBox(0, "", $sResult)And you have non matching brakets, i.e: (1,2} Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
JackDinn Posted June 13, 2009 Share Posted June 13, 2009 for the question all you really need is to get the digits \d+ Thx all,Jack Dinn. JD's Auto Internet Speed Tester JD's Clip Catch (With Screen Shot Helper) Projects :- AutoIt - My projects My software never has bugs. It just develops random features. :-D Link to comment Share on other sites More sharing options...
Kiti Posted June 14, 2009 Author Share Posted June 14, 2009 (edited) Both examples are working if I try to pull out "26" only from the string "Total 26", but the point is that I have a larger text in clipboard and I want to pull "26" from all of it. This is the text: What is bolded always remains the same. What is red changes everytime. I want to pull the underlined words which are: 26, Marvin,2:489:4, 88.812, 49.807 and 12.679. For the last three numbers I've made a script and it works:$string = clipget() $asResult1 = StringRegExp($string, '([.0123456789]{1,7})(?: metal)', 1) If @error == 0 Then MsgBox(0, "", $asResult1[0]) EndIf $asResult2 = StringRegExp($string, '([.0123456789]{3,7})(?: cristal)', 1) If @error == 0 Then MsgBox(0, "", $asResult2[0]) EndIf $asResult3 = StringRegExp($string, '([.0123456789]{3,7})(?: deuteriu)', 1) If @error == 0 Then MsgBox(0, "", $asResult3[0]) EndIfBut I still don't know how to pull "Marvin" and "2:489:4" because both are changeable and there is nothing else next to them apart from "Aparator" which stays fixed. And the above two scripts are not working on that entire text Edited June 14, 2009 by Kiti Think outside the box.My Cool Lego Technic Website -- see walking bipeds and much more!My YouTube account -- see cool physics experimentsMy scripts:Minesweeper bot: Solves advanced level in 1 second (no registry edit), very improved GUI, 4 solving stylesCan't go to the toilet because of your kids closing your unsaved important work? - Make a specific window uncloseableCock Shooter Bot -- 30 headshots out of 30 Link to comment Share on other sites More sharing options...
oMBRa Posted June 14, 2009 Share Posted June 14, 2009 try this: #include <Array.au3> $String = 'Aparator Marvin ([2:489:4])' $a = StringRegExp($String, '(?:Aparator\s)(\b\w+\b)(?:\s\(\[)(.*?)(?:\]\))', 1) _ArrayDisplay($a) Link to comment Share on other sites More sharing options...
Kiti Posted June 14, 2009 Author Share Posted June 14, 2009 try this: #include <Array.au3> $String = 'Aparator Marvin ([2:489:4])' $a = StringRegExp($String, '(?:Aparator\s)(\b\w+\b)(?:\s\(\[)(.*?)(?:\]\))', 1) _ArrayDisplay($a) It's working, thank you very much! What about the "Total 26" thing? And if you're not to busy right now, could you explain me what does the "(?:Aparator\s)(\b\w+\ (?:\s\(\[)(.*?)(?:\]\))" do? I really want to be able to make my own stringregexp match strings without getting them from the forum ^^ Think outside the box.My Cool Lego Technic Website -- see walking bipeds and much more!My YouTube account -- see cool physics experimentsMy scripts:Minesweeper bot: Solves advanced level in 1 second (no registry edit), very improved GUI, 4 solving stylesCan't go to the toilet because of your kids closing your unsaved important work? - Make a specific window uncloseableCock Shooter Bot -- 30 headshots out of 30 Link to comment Share on other sites More sharing options...
oMBRa Posted June 14, 2009 Share Posted June 14, 2009 (edited) (?:Aparator\s)"?:" means non capturing group, "\s" matches any whitespace character (\b\w+\ "\b" matches at the beginnig or end of a word, "\w" matches any "word" character such as a,b,c, digits and underscore _ (?:\s\(\[)it's another non capturing group that matches a whitespace character and "([", note that the backslash escape a special character so "\(" matches a round bracket, same for the square one (.*?)matches anything except newline ( but find the smallest match ) (?:\]\))non capturing group that matches ")]" Edited June 14, 2009 by oMBRa Link to comment Share on other sites More sharing options...
Kiti Posted June 14, 2009 Author Share Posted June 14, 2009 (edited) Thank you a lot for the explanations! Now I managed to creat a search string to pull out the number "26" ! $String = clipget() $nr = StringRegExp($String, '(?:Total\s)(\b\d+\B) ', 1) My script is finally finished! Edited June 14, 2009 by Kiti Think outside the box.My Cool Lego Technic Website -- see walking bipeds and much more!My YouTube account -- see cool physics experimentsMy scripts:Minesweeper bot: Solves advanced level in 1 second (no registry edit), very improved GUI, 4 solving stylesCan't go to the toilet because of your kids closing your unsaved important work? - Make a specific window uncloseableCock Shooter Bot -- 30 headshots out of 30 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now