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))