我正在尝试从一个字符串中提取多个组,并将其保存以备以后使用,以便我可以将它们组合在一起。
基本上我想从这里开始:
frac{2+2}{9}
to this
(2+2)/(9)
我正在尝试使用正则表达式(re)完成此操作,但似乎无法使用(?P ...)将文本中的多个组保存到变量中,其中将字符串的这一部分保存到变量X中。可以正常工作,但是当我尝试使用(?P ...)和(?P ...)保存多个组时,它只返回一个。
python中是否可以使用正则表达式从字符串中捕获多个组,然后将其存储到变量中,然后再使用它们?
现在我的代码看起来像这样
stringtotest = 'frac{2+2}{9}*29+frac{2+3}{10}*29'
import re
a = re.search('frac{(.+?)}', stringtotest).group(1)
print(a)
b = re.search('backslashfrac{(?:...)}{(.+?)}', stringtotest).group(1)
print(b)
这很好用,但是我想通过做这样的事情来更有效地做。
string = 'frac{2+2}{9}*29+frac{2+3}{10}*29'
import re
both = re.search('frac{(?P<a>...)}{(?P<b>...)}', string)
print(both.groups(1))
但这会返回错误。
'NoneType'对象没有属性'groups'
感谢您的时间!
答案 0 :(得分:0)
这难道不是很容易吗?
stringtotest = 'frac{2+2}{9}*29+frac{2+3}{10}*29'
to_replace = [("}{", ")/("), ("frac{", "("), ("}", ")")]
for x, y in to_replace:
stringtotest = stringtotest.replace(x, y)
print(stringtotest)