【发布时间】:2019-05-17 09:13:37
【问题描述】:
我正在尝试提取括号之间的等式,但我不知道如何在 python 2.7 中执行此操作。
我试过re.findall,但我认为模式是错误的。
child = {(x1<25)*2 +((x1>=25)&&(x2<200))*2+((x1>=25)&&(x2>=200))*1}
stringExtract = re.findall(r'\{(?:[^()]*|\([^()]*\))*\}', child)
它什么都不返回,而不是x1<25)*2 +((x1>=25)&&(x2<200))*2+((x1>=25)&&(x2>=200))*1
【问题讨论】:
-
child似乎不是字符串,re.findall应该用在字符串上。给定的例子甚至没有为我编译,你能提供一个minimal reproducible example吗? -
child.lstrip('{').rstrip('}'),给定的孩子是一个字符串child = '{(x1<25)*2 +((x1>=25)&&(x2<200))*2+((x1>=25)&&(x2>=200))*1}' -
如果你的意思是
child = '{(x1<25)*2 +((x1>=25)&&(x2<200))*2+((x1>=25)&&(x2>=200))*1}',那么child[1:-1]就足够了。
标签: python regex python-2.7