繁体   English   中英

如何在 PyCharm 中使用正则表达式占位符替换 function

[英]How to use regex placeholder in PyCharm replace function

我有一个 Python 文件,其中有很多这样的行:

df['A'] = df.T + df.N / df.R

我想用df['something']替换每个df.something出现,所以上面的行变成:

df['A'] = df['T'] + df['N'] / df['R']

我使用Ctrl + R激活替换功能,然后勾选Reg̲ex选项,并通过搜索df.[AZ]成功突出显示每个出现,因为[AZ]代表每个TNR等等,因为它是占位符。
我不知道如何在“替换为”框中使用相同的占位符,因此不知道要写什么:如果我重用[AZ] (下图)作为占位符并写df.['[AZ]']我得到这个:

df['A'] = df['[A-Z]'] + df['[A-Z]'] / df['[A-Z]']

在此处输入图像描述

我应该在底部框中写什么作为占位符?

你需要搜索

df\.([A-Z]+)

并将其替换为

df\["$1"\]

然后
df['A'] = df["T"] + df["N"] / df["R"]

变成

df['A'] = df["T"] + df["N"] / df["R"]

您需要启用正则表达式机制(右侧最后一个)。 请记住[ , ]. 是正则表达式中的元字符, $1是第一个捕获的组内容。


对于另一个方向,您可以使用
df\[(['"])(.+?)\1\]

并将其替换为

df.$2

不过,这仅适用于单引号。 对于双引号和单引号,请使用

df\[(['"])(.+?)\1\]

并将其替换为

df.$2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM