【发布时间】:2015-05-07 17:10:29
【问题描述】:
我正在尝试与regex 匹配两条规则。我已经尝试过对各种情况进行测试,但给了我不想要的结果。
规则如下:
- 查找所有数字字符串(包括整数、小数和负值)
- 查找所有没有数值的字符串。这是指特殊字符,例如 !@#$%^&*()
所以在我尝试匹配这些规则时,我得到了这个:
def rule(word):
if re.match("\W", word):
return True
elif re.match("[-.\d]", word):
return True
else:
return False
Input: output测试如下
word = '972.2' : True
word = '-88.2' : True
word = '8fdsf' : True
word = '86fdsf' : True我希望这是假的
word = '&^(' : True
还有一些测试,但我只是想表明我想返回 False。似乎它只匹配第一个字符,所以我尝试更改正则表达式 epressions,但这让事情变得更糟。
【问题讨论】:
-
对于识别号码,使用
try/except和number=float(string)会更简单