我正在尝试在python中编写一些脚本(使用正则表达式),我遇到以下问题:
我需要确保字符串只包含数字和空格,但它可以包含任意数量的数字。
意味着它应该与字符串匹配: “213”(一个数字),“123 432”(两个数字),甚至“123 432 543 3 235 34 56 456 456 234 324 24”(十二个数字)。
我试着在这里搜索,但我找到的只是如何从字符串中提取数字(和相反的情况) - 这并没有帮助我确保天气中的所有字符串只包含数字(由任意数量的空格分隔)。 / p>
有没有人有解决方案?
如果有人知道包含所有特殊字符的类(例如!$#_ - ),那就太棒了(因为那时我可以做[^ AZ] [^ az] [^ special-类]因此得到的东西与任何字符和特殊符号都不匹配 - 只留下数字和空格(如果我是正确的话)。
答案 0 :(得分:9)
此代码将检查字符串是否仅包含数字和空格字符。
if re.match("^[0-9 ]+$", myString):
print "Only numbers and Spaces"
答案 1 :(得分:4)
答案 2 :(得分:0)
好吧,我建议不使用regex
的东西:
>>> s = "12a 123"
>>> to_my_linking = lambda x: all(var.isdigit() for var in x.split())
>>> to_my_linking(s)
False
>>> s = "1244 432"
>>> to_my_linking(s)
True
>>> a = "123 432 543 3 235 34 56 456 456 234 324 24"
>>> to_my_linking(a)
True
如果您正在工作,lambda
只是制作单行功能的简单方法。如果我们使用def
编写它,那么它将如下所示:
>>> def to_my_linking(number_sequence):
... return all(var.isdigit() for var in number_sequence.split())
...