Python搜索并替换为字符串

时间:2014-11-29 07:15:04

标签: python

我在我的python脚本中定义了一个名为' details'如下所示。我想在它上面应用一些正则表达式,并将名为' sam'之间的$ {sub.name}替换为-n和-p之间的值。并且同样想用7467和80替换$ {sub.number}和$ {sub.marks}。我希望输出类似于: -

-n sam -p 7467 -m 80

即使经过很多努力,我仍然在努力应用正则表达式。有帮助吗?感谢

这是我的代码段: -

import re
details = "-n ${sub.name} -p ${sub.number} -m ${sub.marks}"
rep = re.sub(#apply regex)

1 个答案:

答案 0 :(得分:0)

这是许多人的解决方案。 Python字符串格式化可以替换这些值,提供

  1. 我们从results变量
  2. 中删除美元符号
  3. 我们将所有替换放入一个类的实例中,以便{sub.name}成为sam
  4. 以下是代码:

    class Substitutions():
        def __init__(self, **kwargs):
            for key, value in kwargs.items():
                setattr(self, key, value)
    
    sub = Substitutions(name='sam', number=7467, marks=80)
    details = '-n ${sub.name} -p ${sub.number} -m ${sub.marks}'
    details = details.replace('${', '{') # Remove all the dollar signs
    
    result = details.format(sub=sub)
    print result