ices_ 2017-03-28 02:18 采纳率: 0%
浏览 1718

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

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

  • 写回答

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)
    我也是初学,这个方法有点笨,不过可以实现

    评论

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备