任务非常简单,但我还没有想出一个好的解决方案:字符串可以包含数字、破折号和加号,或者仅包含数字。
^[0-9+-]+$
做了我需要的大部分工作,除了当用户输入像“+-+--+”这样的垃圾时
我在常规前瞻方面运气不佳,因为破折号和加号可能位于字符串中的任何位置。
有效字符串:
- 234654
- 24-3+-2
- -234
- 25485+
Invalid:
- ++--+
这个怎么样:
([+-]?\d[+-]?)+
这意味着“一个或多个数字,每个数字前面或后面都可以有一个可选的加号或减号”。
这是一个 Python 测试脚本:
import re
TESTS = "234654 24-3+-2 -234 25485+ ++--+".split()
for test in TESTS:
print test, ":", re.match(r'([+-]?\d[+-]?)+', test) is not None
打印出这个:
234654 : True
24-3+-2 : True
-234 : True
25485+ : True
++--+ : False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)