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

3

我有一个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.[A-Z]来突出显示每个出现的位置,因为[A-Z]代表每个TNR等,因为它是一个占位符。
我不知道如何在“替换为”框中使用相同的占位符,因此不知道要写什么:如果我重用[A-Z](如下图所示)作为占位符,并编写df.['[A-Z]'],则会得到这个结果:

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

enter image description here

在底部的框中,我应该写什么作为占位符?
1个回答

5

你需要搜索

df\.([A-Z]+)

请将此替换为

df\["$1"\]

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

变成

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

你需要启用正则表达式机制(最右边的那个)。请记住,在正则表达式中,[].是元字符,$1是第一个捕获组的内容。
df\['([^']+)'\]

并将此替换为

df.$1

虽然只能使用单引号,但双引号和单引号都可以使用

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

将其替换为
df.$2

太棒了,它成功了!那么,如果我想进行相反的替换呢? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接