我怎么能告诉一个字符串是否只包含使用正则表达式的python中的数字和空格

Tom*_*eid 7 python regex numbers spaces digits

我正在尝试在python中编写一些脚本(使用正则表达式),我有以下问题:

我需要确保一个字符串只包含数字和空格,但它可以包含任意数量的数字.

这意味着它应该匹配字符串:"213"(一个数字),"123 432"(两个数字),甚至"123 432 543 3 235 34 56 456 456 234 324 24"(十二个数字).

我尝试在这里搜索,但我发现的是如何从字符串中提取数字(和相反的方式) - 这并没有帮助我确保天气所有字符串只包含数字(由任意数量的空格分隔).

有没有人有办法解决吗?

如果有人知道包含所有特殊字符的类(例如!$#_ - ),那就太棒了(因为那时我可以做[^ AZ] [^ az] [^ special-class ]因此得到的东西与任何字符和特殊符号都不匹配 - 只留下数字和空格(如果我是正确的话).

the*_*eye 10

此代码将检查字符串是否仅包含数字和空格字符.

if re.match("^[0-9 ]+$", myString):
    print "Only numbers and Spaces"
Run Code Online (Sandbox Code Playgroud)

  • @ mb14:不,re.match总是从头开始. (2认同)

mb1*_*b14 5

基本的正则表达式为

/^[0-9 ]+$/
Run Code Online (Sandbox Code Playgroud)

但是,如果您的字符串仅包含空格,也可以使用。要检查至少有一个号码,您需要以下内容

/^ *[0-9][0-9 ]*$/
Run Code Online (Sandbox Code Playgroud)

你可以在那里尝试