Gre*_*ins 22
搜索正数,负数和/或小数,您可以使用 [+-]?\d+(?:\.\d+)?
>>> nums = re.compile(r"[+-]?\d+(?:\.\d+)?")
>>> nums.search("0.123").group(0)
'0.123'
>>> nums.search("+0.123").group(0)
'+0.123'
>>> nums.search("123").group(0)
'123'
>>> nums.search("-123").group(0)
'-123'
>>> nums.search("1").group(0)
'1'
Run Code Online (Sandbox Code Playgroud)
当然,这对于前导/尾随零并不是很聪明:
>>> nums.search("0001.20000").group(0)
'0001.20000'
Run Code Online (Sandbox Code Playgroud)
编辑:更正了上述正则表达式以查找单位数字.
如果您想添加对指数形式的支持,请尝试[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?
:
>>> nums2 = re.compile(r"[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?")
>>> nums2.search("-1.23E+45").group(0)
'-1.23E+45'
>>> nums2.search("0.1e-456").group(0)
'0.1e-456'
>>> nums2.search("1e99").group(0)
'1e99'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29124 次 |
最近记录: |