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')
私の正規表現は、例外を発生させているようですが、私理由は分かりません。誰かが私にそれを解決する助けてもいいですか?前もって感謝します。
通常、正規表現は例外自体を発生させません。あなたはそれを文字列にしてもよろしいですか? –
はい、私はそう思っていますが、それは問題の原因となるグループかもしれませんが、私は確信していません – zhangdi