KDoc Posted May 18, 2019 Share Posted May 18, 2019 Hi, Is there an easier way to search for text data Autoit String with specific parameters. For example, I have a string $A="Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Customer Rec#: 123457, PHone Number#: 555-555-1212' I want to be able to grab the customer # by searching the phrase 'Customer Rec #:' and only grabbing the data after that phrase till for example the comma after the #. I know some programming languages offer data extraction through patterns and wasn't sure if there was a similar or easier way in Autoit to extract data this way. Thanks K Link to comment Share on other sites More sharing options...
Developers Jos Posted May 18, 2019 Developers Share Posted May 18, 2019 Sure: Open the helpfile and look for StringRegExp(). Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
water Posted May 18, 2019 Share Posted May 18, 2019 I'm not very familiar with Regular Expressions so I use multiple StringSplit: #include <StringConstants.au3> Global $A = "Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Customer Rec#: 123457, PHone Number#: 555-555-1212" Global $aSplit = StringSplit($A, "Customer Rec#:", $STR_NOCOUNT + $STR_ENTIRESPLIT) If @error Then Exit MsgBox(0, "Error", "String 'Customer Rec#:' not found!") Global $aCustomerNumber = StringSplit($aSplit[1], ",") If @error Then Exit MsgBox(0, "Error", "No Customer Rec# found!") MsgBox(0, "Customer Rec#", $aCustomerNumber[1]) My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Developers Jos Posted May 18, 2019 Developers Share Posted May 18, 2019 Isn't really that difficult. Global $A = "Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Customer Rec#: 123457, PHone Number#: 555-555-1212" Global $aCustomerNumber = StringRegExp($A, "Customer Rec#: (.*?),",3) If @error Then Exit MsgBox(0, "Error", "String 'Customer Rec#:' not found!") MsgBox(0, "Customer Rec#", $aCustomerNumber[0]) Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Exit Posted May 18, 2019 Share Posted May 18, 2019 or #include <String.au3> Global $sA = "Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Customer Rec#: 123457, PHone Number#: 555-555-1212" Global $aCustomerNumber = _StringBetween($sA, "Customer Rec#: ", ", ") MsgBox(0, "Customer Rec#", (@error?"not found":$aCustomerNumber[0])) App: Au3toCmd UDF: _SingleScript() Link to comment Share on other sites More sharing options...
westernira Posted May 18, 2019 Share Posted May 18, 2019 open the helpfile and then find the command. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted May 18, 2019 Moderators Share Posted May 18, 2019 westernira, Pretty punchy post for a newcomer to the forum, but welcome anyway. I hope your first question gets a more sympathetic response that the one you have just provided. I would however suggest adopting a slightly more emollient tone if you want that to be the case. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
iamtheky Posted May 18, 2019 Share Posted May 18, 2019 moar stringops! Global $A = "Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Customer Rec#: 123457, PHone Number#: 555-555-1212" msgbox(0, '' , StringLeft((stringmid($A , StringInStr($A , "Customer Rec#: ") + StringLen("Customer Rec#: ") - 1)) , (StringInStr(stringmid($A , StringInStr($A , "Customer Rec#: ") + StringLen("Customer Rec#: ") - 1) , ",") - 1))) ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) Link to comment Share on other sites More sharing options...
Exit Posted May 18, 2019 Share Posted May 18, 2019 (edited) @iamtheky Not foolproof, see aditional blank In customer Global $A = "Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Customer Rec#: 123457, PHone Number#: 555-555-1212" msgbox(0, '' , StringLeft((stringmid($A , StringInStr($A , "Customer Rec#: ") + StringLen("Customer Rec#: ") - 1)) , (StringInStr(stringmid($A , StringInStr($A , "Customer Rec#: ") + StringLen("Customer Rec#: ") - 1) , ",") - 1)),2) ;~ Not foolproof, see aditional blank In customer ---------------------------------v Global $A = "Customer Name: John Smith, Address: 1234 Main Street, Chicago, IL, Cus tomer Rec#: 123457, PHone Number#: 555-555-1212" msgbox(0, '' , StringLeft((stringmid($A , StringInStr($A , "Customer Rec#: ") + StringLen("Customer Rec#: ") - 1)) , (StringInStr(stringmid($A , StringInStr($A , "Customer Rec#: ") + StringLen("Customer Rec#: ") - 1) , ",") - 1))) Edited May 18, 2019 by Exit Earthshine 1 App: Au3toCmd UDF: _SingleScript() Link to comment Share on other sites More sharing options...
iamtheky Posted May 18, 2019 Share Posted May 18, 2019 I dont make scripts for people who dont properly sanitize their input, its gross Skysnake, Exit and Earthshine 3 ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__) 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