Python 正则表达式解析间隔

Python 正则表达式解析间隔,python,regex,Python,Regex,我有一个用于解析区间的正则表达式,如[22.3,sqrt(31)) 我看着这个计划,感到困惑:到底出了什么问题? 我还想知道:我可以将正则表达式拆分为字符串吗,比如 regexfloat='..' 然后以某种方式将它们组合成re.compile?结尾(\]\)匹配),但不只是其中一个字符。您忘记将它们包装在[]中 ([[(])([-+]?[0-9]*\.?[0-9]*|(\w*\([-+]?[0-9]*\.?[0-9]*\))|[+-]?oo)\W*?([-+]?[0-9]*\.?[0-9]

我有一个用于解析区间的正则表达式,如
[22.3,sqrt(31))

我看着这个计划,感到困惑:到底出了什么问题?
我还想知道:我可以将正则表达式拆分为字符串吗,比如
regexfloat='..'
然后以某种方式将它们组合成
re.compile

结尾
(\]\)
匹配
,但不只是其中一个字符。您忘记将它们包装在
[]

([[(])([-+]?[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))

您不需要在括号内转义特殊字符。非常感谢。有人提到我要使用字符串sum,但我忘了在每个字符串上都加上r。谢谢你的格式,正是我需要的。
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))