【PyCharm教程】PyCharm 使用正则表达式查找和替换文本

当您要搜索和替换特定的文本模式时,请使用正则表达式。它们可以帮助您进行模式匹配、解析、结果过滤等。一旦您学习了正则表达式语法,您几乎可以将它用于任何语言。
- 按Ctrl+R打开搜索和替换窗格。
如果您需要在多个文件中搜索和替换,请按Ctrl+Shift+R。
- 在顶部字段中输入搜索字符串,在底部字段中输入替换字符串。
单击以启用正则表达式。如果您想检查正则表达式的语法,请将鼠标悬停
并单击“显示表达式帮助”链接。
- 当您搜索包含特殊正则表达式符号的文本字符串时,PyCharm
\
会在搜索字段中使用反斜杠自动对它们进行转义。
请记住,如果您Ctrl+C先复制 ( ) 字符串,然后将其粘贴 ( Ctrl+V) 到搜索字段中,则不会考虑正则表达式符号。
但是,当您专门搜索诸如 之类的元字符时.[{()\^$|?*+
,您需要使用反斜杠对其进行转义\
,以便它们能够被识别。
例如,如果您需要查找.
,请\.
在搜索字段中输入。
- 当您在搜索字段中输入一系列字符时,PyCharm 还可以匹配字母大小写。
例如,如果您只想搜索大写字符,请在搜索字段中键入以下内容:
\b[A-Z]
- 如果
在搜索字段中未选中,PyCharm 会同时搜索小写和大写。
在搜索字段中选择以匹配指定范围的大小写。
- 当您浏览出现时,PyCharm 会显示替换提示,因此您可以在单击“替换”按钮之前查看潜在结果。
使用正则表达式捕获组和反向引用
您可以将正则表达式放在括号内以便对它们进行分组。每个组都有一个以 1 开头的数字,因此您可以在替换模式中引用(反向引用)它们。请注意,组 0 指的是整个正则表达式。但是,您不仅可以通过数字来引用捕获的组$n
,还可以通过名称来引用捕获的组${name}
。
例如,对于编号的捕获组,使用以下语法:
查找字段
<h2>(.*?)</h2>
替换字段
$1
对于命名的捕获组,使用以下语法:
查找字段
<h2>(?<title>.*?)</h2>
替换字段
${title}
查找并替换捕获的组
让我们考虑以下代码:
<form action="" class="form-inline" method="post">
<input type="text" class="form-control"
placeholder="Username" name="username"
value="{{ request.form.username }}">
<input type="password" class="form-control"
placeholder="Password" name="password"
value="{{ request.form.password }}">
<input class="btn btn-default" type="submit"
value="Login">
</form>
- 打开搜索和替换窗格Ctrl+R。
- 在搜索字段中,输入
()
指示捕获组的括号,例如:\svalue="(.*)?"\s*(>*)
。 - 在替换字段中,按从 1 开始的数字反向引用此类组,例如:
placeholder="$1"
- PyCharm 根据您的搜索规范突出显示找到的匹配项,并使用替换字符串显示提示。
切换字符大小写
您可以使用正则表达式来更改匹配某些条件的字符的大小写。
- 打开搜索和替换窗格Ctrl+R。确保
在搜索字段中选中它。
- 在搜索字段中输入搜索模式。
在替换字段中,根据您要实现的目标,输入以下语法之一:
\l
将字符更改为小写,直到字符串中的下一个字符。
例如,
Bar
变成bar
。\u
将字符更改为大写,直到字符串中的下一个字符。
例如,
bar
变成Bar
。\L
将字符更改为小写,直到文字字符串的结尾\E
。
例如,
BAR
变成bar
。\U
将字符更改为大写,直到文字字符串的结尾\E
。
例如,
bar
变成BAR
。