[英]Regex to match scientific notation
在正则表达式的末尾添加锚,并在数字前加空格或等号:
[\s=]+([+-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+))$
只需添加[^\\w]?
排除您的第一个数字之前的所有字母数字字符:
[+\-]?[^\w]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)
从技术上讲, \\w
也将排除数字字符,但这很好,因为您的正则表达式的其余部分都可以捕获它。
如果您想做到严格,可以将\\w
替换为A-Za-z
:
[+\-]?[^A-Za-z]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)
另一种偷偷摸摸的方法是在正则表达式的开头简单地添加一个空格-这将强制所有匹配项必须以空格开头。
scinot = re.compile('[-+]?[\\d]+\\.?[\\d]*[Ee](?:[-+]?[\\d]+)?')
此正则表达式将帮助您找到本文中的所有科学符号。
顺便说一下,这里是类似问题的链接: 从字符串中提取科学数字
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.