帮助纠正现有的正则表达式以替换字符串值

时间:2011-02-21 05:29:37

标签: python regex

我是python的新手,我一直在尝试检查并替换字符串的特定值。为了说明,让我粘贴我使用的代码: -

 var1 = re.sub(r'\$this->getSomething()->getSomethingElse()->(.*?)', r'\1', var1)

我在这里要做的是用(。*?)中包含的值替换整个字符串(var1)。例如,如果字符串采用这种格式“$ this-> getSomething() - > getSomethingElse() - > __('Title')”那么var1的新值应为“__('Title')。”目前我无法弄清楚代码有什么问题,我尝试在所有地方搜索,包括stackoverflow但是没有用。

注意:这似乎运作良好: -

value = re.sub(r"\$title", "$this->title", value)

我希望有人可以帮助我解决这个问题,或者至少指引我朝着正确的方向前进。提前谢谢。

1 个答案:

答案 0 :(得分:1)

括号是元字符,用于分组。您还希望匹配文字括号,这意味着您需要转义某些实例。尝试:

var1 = re.sub(r'\$this->getSomething\(\)->getSomethingElse\(\)->(.*?)', r'\1', var1)

请注意,此特定声明等同于:

var1 = re.sub(r'\$this->getSomething\(\)->getSomethingElse\(\)->', '', var1)

var1 = var1.replace('$this->getSomething()->getSomethingElse()->', '')