Search code examples
pythonregexnumbersspacesdigits

how can i tell if a string contains ONLY digits and spaces in python using regex


I'm trying to write some script in python (using regex) and I have the following problem:

I need to make sure that a string contains ONLY digits and spaces but it could contain any number of numbers.

Meaning it should match to the strings: "213" (one number), "123 432" (two numbers), and even "123 432 543 3 235 34 56 456 456 234 324 24" (twelve numbers).

I tried searching here but all I found is how to extract digits from strings (and the opposite) - and that's not helping me to make sure weather ALL OF THE STRING contains ONLY numbers (seperated by any amount of spaces).

Does anyone have a solution?

If someone knows of a class that contains all the special characters (such as ! $ # _ -) it would be excellent (because then I could just do [^A-Z][^a-z][^special-class] and therefore get something that don't match any characters and special symbols - leaving me only with digits and spaces (if I'm correct).


Solution

  • The basic regular expression would be

    /^[0-9 ]+$/
    

    However is works also if your string only contains space. To check there is at least one number you need the following

    /^ *[0-9][0-9 ]*$/
    

    You can try it on there