Sign in to follow this  
Followers 0
Monty

Extracting numbers from string.

5 posts in this topic

Hi all, can someone PLEASE answer this for me...it may be very simple but I cannot think at the moment. And all searches shows something different.

Lets say I have a string...$data = "0123abc". Now how do I extract the numbers from $data? Please note $data can vary (may have a prefix zero, letters, special characters, blank spaces and so on).

Your help will be greatly appreciated.

Thanks.

Share this post


Link to post
Share on other sites



#3 ·  Posted (edited)

Monty,

Try this:

$sData = "0123abc"

$sDigits = StringRegExpReplace($sData, "\D", "")

ConsoleWrite($sDigits & @CRLF)

From the RegEx page in the Help file:

\D -- Match any non-digit

So it should work in all the cases you mention.

M23

Edit: Pressed wrong button too early!

Edited by Melba23

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

#4 ·  Posted (edited)

$data = "0123abc43598zwewef  %&&$§$$§  we83223"
$result = ""
while StringLen ( $data ) > 0
    if StringIsDigit ( stringleft ($data, 1) ) = 1 then $result = $result & stringleft ($data, 1)
    $data = StringTrimleft ( $data, 1 )
wend
msgbox(16,"",$result)

maybe this helps you :D

Edited by andygo

Share this post


Link to post
Share on other sites

Thank you all. StringRegExpReplace($data, "\D", "") worked pretty well.

Thank you.

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