我想把用科学记数法给出的字符串中的所有数字都匹配起来,这是我的程序
import re
txt = '2310163 -204.1154263 -204.1159668 -204.1110188 -204E-9668 200-100'
print re.findall('([+-]?\d+\.?[eE]?[+-]?\d*)', txt)
# ^ ^
# ex sg
# allow sg only if its followed by ex
现在200-100
不是一个有效的数字,但是regex与之匹配,因为我已经为指数部分给出了一个[+-]
。现在,如何使regex只检查[+-]
,如果它后面紧跟着[eE]
,比如数字-204E-9668
我认为你所期待的是一个积极的前景
这是一个很好的主题资源:https://www.rexegg.com/regex-lookarounds.html
将整个科学记数法部分放入一个可选组,同时分别匹配可能的小数部分,然后:
如果希望
200-100
部分的无匹配,因为200
正好位于100的旁边,那么在开始时,向后看一个空格或字符串的开头,在结束时,向前看一个空格或字符串的结尾:https://regex101.com/r/SdA295/1
相关问题 更多 >
编程相关推荐