我正在使用Spyder(用于Python),我正在寻找一种在整个代码中更改变量名称的方法。我知道替换文本函数,但这也改变了文本,我的变量名只是其中的一部分。我从Matlab知道这个函数,在Spyder中是这样的,还是在Notepad ++中?
因此,如果我想更改变量" data"的名称,它应该替换使用数据的所有内容(也包括data.append等表达式),但不应更改&#34之类的内容; datanew",这是另一个变量
答案 0 :(得分:1)
( Spyder维护者在这里)这种操作的技术术语是重构,我很抱歉地告诉你,但Spyder没有自2017年11月起获得支持。
答案 1 :(得分:1)
不确定是否理解您的需求,但我想您需要(使用Notepad ++):
\bdata\b
new_name
<强>解释强>
\b : word boundary, make sure we don't have a word character before
data : literally "data"
\b : word boundary, make sure we don't have a word character after
为了保留"data"
,您可以使用negative lookaround:
(?<!["'])\bdata\b(?!["'])
答案 2 :(得分:0)
您可以在Notepad ++
中将其替换为以下正则表达式(?:"(?:\\.|[^\"])*")\K|(?:\bdata\b)
但是有一个障碍 - 它为每次收盘后的空位提供了一个匹配&#34;太。
所以你可以分3个步骤使用它
将(?:"(?:\\.|[^\"])*")\K|(?:\bdata\b)
替换为a_string_you_dont_use
将"a_string_you_dont_use
替换为"
用新的变量名
a_string_you_dont_use
醇>
测试时使用:regex101
也许有人可以改进正则表达式,这样你就可以一步到位。第一部分匹配""
内的每个匹配,并将匹配与\K
删除,但它会留下空匹配。第二部分匹配变量本身。
正则表达式负责"
和\"
而不是'
,所以如果你使用它,你必须扩展正则表达式。