0

次のように、間隔を解析するための正規表現があります[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

4

1 に答える 1

1

エンディングは に(\]\))一致])しますが、文字の 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))
于 2013-10-31T21:58:25.683 に答える