用python正则表达式替换字符串问题

我用python写一个计算器,想用正则表达式将字符串中的一些内容替换,举个例子字符串如下
1+2*3-(5/6)+sin(45)-ln(100)
如何将用正则表达式先找到其中有sin()的内容,然后将sin(45)这个子串提取出来算出其值,然后用值去替换字符串中sin(45)

1个回答

import re
import math
s = '1+2*3-(5/6)+sin(45)-ln(100)'
str_sin = re.search('sin(\d+)', s).group()
num_sin = re.search('\d+', str_sin).group()
re_sin = math.sin(int(num_sin))
s = re.sub('sin(\d+)',str(re_sin) ,s,1)
print(s)
我也是初学,这个方法有点笨,不过可以实现

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐