次のように、間隔を解析するための正規表現があります[22.3, sqrt(31))
([\[\(])([-+]?[0-9]*\.?[0-9]*|(\w*\([-+]?[0-9]*\.?[0-9]*\))|[+-]?oo)\W*?([-+]?[0-9]*\.?[0-9]*|(\w*\([-+]?[0-9]*\.?[0-9]*\))|[+-]?oo)(\]\))
私はスキームを見て混乱しています。正確には何が問題なのですか?
私も疑問に思っ
ていまし
た
.re.compile
エンディングは に(\]\))
一致])
しますが、文字の 1 つだけではありません。でラップするのを忘れました[ ]
。
([[(])([-+]?[0-9]*\.?[0-9]*|(\w*\([-+]?[0-9]*\.?[0-9]*\))|[+-]?oo)\W*?([-+]?[0-9]*\.?[0-9]*|(\w*\([-+]?[0-9]*\.?[0-9]*\))|[+-]?oo)([])])
パターンを複数の文字列に分割:
p_float = r'[-+]?[0-9]*\.?[0-9]*' # a number
p_func = r'\w*\(%s\)' % p_float # function + number
p_inf = r'[+-]?oo' # infinity
p_value = r'%s|%s|%s' % (p_float, p_func, p_inf)
pattern = re.compile(r'([[(])(%s)\W*?(%s)([])])' % (p_value, p_value))