# Test if string begins with number

**URL:** https://discourse.julialang.org/t/test-if-string-begins-with-number/23809
**Category:** New to Julia
**Tags:** question
**Created:** [May 3, 2019, 12:16pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809 "2019-05-03T12:16:23Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)
#### Post date: [May 3, 2019, 12:16pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/1 "2019-05-03T12:16:23Z")

</div>

Dear all,  
it is possible to test whether a string starts with a number?  
Let’s say I have the following:

```julia
julia> x="Some string"
"Some string"

julia> y="1 Another string"
"1 Another string"

julia> X=x[1]
'S': ASCII/Unicode U+0053 (category Lu: Letter, uppercase)

julia> Y=y[1]
'1': ASCII/Unicode U+0031 (category Nd: Number, decimal digit)

julia> parse(Int8, X)
ERROR: ArgumentError: invalid base 10 digit 'S'
Stacktrace:
 [1] #parse#330(::Int64, ::Function, ::Type{Int8}, ::Char) at ./parse.jl:43
 [2] parse(::Type{Int8}, ::Char) at ./parse.jl:38
 [3] top-level scope at none:0

julia> parse(Int8, Y)
1

```

How can I distinguish between X and Y and determine that Y is a number?  
Thank you

---

<div class="post-metadata">

### Author: ![BeastyBlacksmith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/beastyblacksmith/32/4741_2.png) [@BeastyBlacksmith](https://discourse.julialang.org/u/BeastyBlacksmith)
#### Post date: [May 3, 2019, 12:19pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/2 "2019-05-03T12:19:04Z")

</div>

```julia
isdigit(X) && parse(Int8, X)

```

more generally, if you look for test functions, doing

```julia
julia> is\<tab>\<tab>

```

gives you a list of `isX` functions.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [May 3, 2019, 12:46pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/3 "2019-05-03T12:46:28Z")

</div>

It is unclear if you want to check if a string starts with a _number_ (ie something that would parse as a `::Real`, or even broader, in Julia, eg `"-12.7e9foo"`), or simply a _digit_.

---

<div class="post-metadata">

### Author: ![Luigi\_Marongiu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luigi_marongiu/32/7909_2.png) [@Luigi\_Marongiu](https://discourse.julialang.org/u/Luigi_Marongiu)
#### Post date: [May 3, 2019, 1:00pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/4 "2019-05-03T13:00:10Z")

</div>

for the moment digit will do (thus the question is answered), but a more general approach might be handy in the future.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [May 3, 2019, 1:15pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/5 "2019-05-03T13:15:33Z")

</div>

You have to be specific about how you want to generalize this; what would constitute valid strings, whether you need the number, etc. If you don’t, a regular expression can be used.

---

<div class="post-metadata">

### Author: ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)
#### Post date: [May 3, 2019, 1:16pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/6 "2019-05-03T13:16:47Z")

</div>

The more general approach you’re looking for is [regex](https://en.wikipedia.org/wiki/Regular_expression). Julia has regex functionality in `Base`, the relevant functions are listed [here](https://docs.julialang.org/en/v1/base/strings/#Base.match).

Be warned, regex notation is impossible to remember. 😆

---

<div class="post-metadata">

### Author: ![bramtayl](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bramtayl/32/3614_2.png) [@bramtayl](https://discourse.julialang.org/u/bramtayl)
#### Post date: [May 4, 2019, 3:49am UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/7 "2019-05-04T03:49:26Z")

</div>

> regex notation is impossible to remember

[Not anymore](https://github.com/bramtayl/RegularExpressions.jl)

---

<div class="post-metadata">

### Author: ![bertulli](https://avatars.discourse-cdn.com/v4/letter/b/ecc23a/32.png) [@bertulli](https://discourse.julialang.org/u/bertulli)
#### Post date: [February 24, 2026, 10:03pm UTC](https://discourse.julialang.org/t/test-if-string-begins-with-number/23809/8 "2026-02-24T22:03:16Z")

</div>

To whoever it may concern, now the method [`startswith`](https://docs.julialang.org/en/v1/base/strings/#Base.startswith) in the standard library accepts a regex as a prefix:

```julia-auto
julia> startswith("1234 Hi!", r"\d+")
true

julia> startswith("1234 Hi!", r"\d")
true

julia> startswith("1234 Hi!", r"\w")
true

julia> startswith("1234 Hi!", r"[a-zA-Z]")
false

julia> startswith("1234 Hi!", r"[0-9]")
true

```
