【发布时间】:2017-01-25 22:17:25
【问题描述】:
import re
p2b = open('repattern2b.txt').read().rstrip()
我需要编写一个正则表达式模式来匹配表示以科学记数法书写的数字的字符串。但除此之外,还要确保第 1 组是尾数的符号(如果有符号);第 2 组是尾数,但前提是它不为 0(该异常使模式更简单);第 3 组是指数。
例如:如果
m = re.match(the pattern,’9.11x10^-31’)
那么 m.groups() 是
(None, '9.11', '-31').
应该没有更多的组。
下面是我为'repattern2b.txt'写的正则表达式:
^([+-]?)([1-9].[0-9]+)x10^([1-9][0-9]*)$
但我得到了错误:
54 *Error: re.match(p2b,'0').groups() raised exception; unevaluated: (None, None, None)
55 *Error: re.match(p2b,'5').groups() raised exception; unevaluated: (None, '5', None)
56 *Error: re.match(p2b,'5.0').groups() raised exception; unevaluated: (None, '5.0', None)
57 *Error: re.match(p2b,'5.2x10^31').groups() raised exception; unevaluated: (None, '5.2', '31')
58 *Error: re.match(p2b,'5.2x10^-31').groups() raised exception; unevaluated: (None, '5.2', '-31')
59 *Error: re.match(p2b,'5.2x10^+31').groups() raised exception; unevaluated: (None, '5.2', '+31')
60 *Error: re.match(p2b,'-5.2x10^-31').groups() raised exception; unevaluated: ('-', '5.2', '-31')
似乎我的正则表达式引发了异常,但我不知道为什么。有人可以帮我解决吗?提前致谢。
【问题讨论】:
-
通常正则表达式本身不会引发异常。你确定你给它一个字符串吗?
-
是的,我想我做到了,可能是分组导致了问题,但我不确定
标签: python