我用python写一个计算器,想用正则表达式将字符串中的一些内容替换,举个例子字符串如下
1+2*3-(5/6)+sin(45)-ln(100)
如何将用正则表达式先找到其中有sin()的内容,然后将sin(45)这个子串提取出来算出其值,然后用值去替换字符串中sin(45)
用python正则表达式替换字符串问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- monvxyx2015 2017-03-28 07:30关注
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)
我也是初学,这个方法有点笨,不过可以实现解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!