我是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)
我希望有人可以帮助我解决这个问题,或者至少指引我朝着正确的方向前进。提前谢谢。
答案 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()->', '')