python - 如何在 PyCharm 替换功能中使用正则表达式占位符
问题描述
我有一个 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]
代表每个T
,N
等等R
,因为它是一个占位符。
我不知道如何在“替换为”框中使用相同的占位符,因此不知道要写什么:如果我重用[A-Z]
(下图)作为占位符并写df.['[A-Z]']
我得到这个:
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\['([^']+)'\]
并将其替换为
df.$1
不过,这仅适用于单引号。对于双引号和单引号,请使用
df\[(['"])(.+?)\1\]
并将其替换为
df.$2
推荐阅读
- python - 使用python在postgresql中添加uuid列
- azure-language-understanding - 我们如何通过节点 js 代码中的 API 在 luis 中添加意图和话语
- python - 使用 python 的 tableau 服务器客户端返回所有可能的过滤器值
- java - 如何在 firebase 中查询双嵌套数据?
- mysql - WHERE 在三重 INNER JOIN 中
- tensorflow - TensorFlow中相同网络错误的两个输入
- c++ - CMakeLists 包含子目录中的头文件
- visual-studio-code - Visual Studio Code:如何禁用`editor.codeActionsOnSave`
- excel - How to save workbook to a new location without saving changes in the old one
- javascript - TypeError:当前用户在firebase反应中为空