我正在编写一个python正则表达式代码来测试字符串是否可能是数字。我写道如下:
import regex as re
re.match('(([-\s]*)([\d\s,]+)(\.?)([\d\s]*)(%?))',' - 1, 00 0.0 0 %')
这个有效。但是如何使这个示例字符串('.01'
或.01
)不匹配?即如何使模式匹配包含任何数字的字符串,,
,.
,空格和%
,但不匹配.
之前的内容仅为空格的数字或者没有。
答案 0 :(得分:1)
在匹配(?=[\s,]*\d)
之前的数字之前添加前瞻.
,断言有一个数字(.
之前):
(([-\s]*)(?=[\s,]*\d)([\d\s,]+)(\.?)([\d\s]*)(%?))