Jump to content
KDoc

Search for text within a string after specific text

Recommended Posts

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

Share this post


Link to post
Share on other sites

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 (2018-12-03 - Version 1.4.11.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2019-03-02 - Version 1.3.5.0) - Download - General Help & Support - Example Scripts - Wiki
Outlook Tools (NEW 2019-07-13 - Version 0.5.0.0) - Download - General Help & Support - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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]))

 


UDF: _SingleScript()                                        If you like my post, just click the like button :)        here -->

Share this post


Link to post
Share on other sites

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


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

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)))

 


,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Share this post


Link to post
Share on other sites
Posted (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 by Exit

UDF: _SingleScript()                                        If you like my post, just click the like button :)        here -->

Share this post


Link to post
Share on other sites

I dont make scripts for people who dont properly sanitize their input, its gross :)


,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

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

×
×
  • Create New...