在Spyder或Notepad ++中更改变量名称

时间:2017-11-06 16:13:35

标签: variables replace notepad++ spyder

我正在使用Spyder(用于Python),我正在寻找一种在整个代码中更改变量名称的方法。我知道替换文本函数,但这也改变了文本,我的变量名只是其中的一部分。我从Matlab知道这个函数,在Spyder中是这样的,还是在Notepad ++中?

因此,如果我想更改变量" data"的名称,它应该替换使用数据的所有内容(也包括data.append等表达式),但不应更改&#34之类的内容; datanew",这是另一个变量

3 个答案:

答案 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

Learn more on wordboundary

为了保留"data",您可以使用negative lookaround

(?<!["'])\bdata\b(?!["'])

答案 2 :(得分:0)

您可以在Notepad ++

中将其替换为以下正则表达式
(?:"(?:\\.|[^\"])*")\K|(?:\bdata\b)

但是有一个障碍 - 它为每次收盘后的空位提供了一个匹配&#34;太。

所以你可以分3个步骤使用它

  1. (?:"(?:\\.|[^\"])*")\K|(?:\bdata\b)替换为a_string_you_dont_use

  2. "a_string_you_dont_use替换为"

  3. 用新的变量名

  4. 替换a_string_you_dont_use

    测试时使用:regex101

    也许有人可以改进正则表达式,这样你就可以一步到位。第一部分匹配""内的每个匹配,并将匹配与\K删除,但它会留下空匹配。第二部分匹配变量本身。

    正则表达式负责"\"而不是',所以如果你使用它,你必须扩展正则表达式。