我正在尝试匹配科学记数法中的数字(regex from here):
scinot = re.compile('[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)')
re.findall(scinot, 'x = 1e4')
['1e4']
re.findall(scinot, 'x = c1e4')
['1e4']
我希望它与x = 1e4
匹配,而不是{}。我该换什么?在
更新:答案here有相同的问题:它不正确地匹配'x = c1e4'
。在
Tags:
scinot = re.compile('[-+]?[\d]+\.?[\d]*[Ee](?:[-+]?[\d]+)?')
此正则表达式将帮助您找到文本中的所有科学符号。在
顺便说一句,下面是类似问题的链接: Extract scientific number from string
在regex结尾添加锚定,在数字前添加替代空格或等号:
只需添加
[^\w]?
以排除第一个数字之前的所有字母数字字符:从技术上讲,
\w
也将排除数字字符,但这没问题,因为其余的regex将捕捉到它。在如果您想要真正严格,可以将
^{pr2}$\w
替换为A-Za-z
:另一种鬼鬼祟祟的方法是在正则表达式的开头添加一个空格,这将强制所有匹配项都必须以空格开头。在
相关问题 更多 >
编程相关推荐