Jump to content
Sign in to follow this  

Extracting numbers from string.

Recommended Posts


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.


Share this post

Link to post
Share on other sites


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.


Edit: Pressed wrong button too early!

Edited by Melba23

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:


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

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

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