使用正则表达式查找和替换文本
最后修改时间:2023 年 10 月 25 日当您想要搜索和替换特定模式的文本时,请使用正则表达式。它们可以帮助您进行模式匹配、解析、结果过滤等。一旦学习了正则表达式语法,您就可以将它用于几乎任何语言。
按打开搜索和替换窗格。Ctrl0R
笔记
如果您需要在多个文件中搜索和替换,请按。有关更多信息,请参阅搜索和替换项目中的目标。CtrlShift0R
在顶部字段中输入搜索字符串,在底部字段中输入替换字符串。
单击以启用正则表达式。如果您想检查正则表达式的语法,请将鼠标悬停在显示表达式帮助链接上并单击。
当您搜索包含特殊正则表达式符号的文本字符串时,IntelliJ IDEA 会
\
在搜索字段中自动使用反斜杠对它们进行转义。笔记
请记住,如果您先复制 ( ) 字符串,然后将其粘贴 ( ) 到搜索字段中,则不会考虑正则表达式符号。Ctrl0CCtrl0V
但是,当您专门搜索诸如 之类的元字符时
.[{()\^$|?*+
,您需要使用反斜杠对其进行转义\
,以便可以识别它们。例如,如果您需要查找
.
,请\.
在搜索字段中输入。当您在搜索字段中输入一系列字符时,IntelliJ IDEA 还可以匹配字母大小写。
例如,如果您只想搜索大写字符,请在搜索字段中输入以下内容:
\b[A-Z]
要搜索和替换更复杂的模式,请使用结构搜索和替换。
如果在搜索字段中取消选择 ,IntelliJ IDEA 会同时搜索小写和大写字母。
选择以匹配指定范围的大小写。
当您浏览事件时,IntelliJ IDEA 会显示替换提示,因此您可以在单击“替换”按钮之前查看潜在的结果。
笔记
有关更多详细信息,请参阅正则表达式语法。
使用正则表达式捕获组和反向引用
您可以将正则表达式放在括号内以便对它们进行分组。每个组都有一个以 1 开头的数字,因此您可以在替换模式中引用(反向引用)它们。请注意,组 0 指的是整个正则表达式。但是,您不仅可以通过编号来引用捕获的组$n
,还可以通过名称来引用${name}
。
例如,对于编号的捕获组,请使用以下语法:
<h2>(.*?)</h2>
$1
对于命名捕获组,请使用以下语法:
<h2>(?<title>.*?)</h2>
${title}
查找并替换捕获的组
让我们考虑以下代码:
<new product="ij" category="105" title="Multiline search and replace in the current file"/>
<new product="ij" category="105" title="Improved search and replace in the current file"/>
<new product="ij" category="105" title="Regexp shows replacement preview"/>
切换字符大小写
您可以使用正则表达式来更改匹配某些条件的字符的大小写。
打开搜索和替换窗格。确保在搜索字段中选择了该选项。Ctrl0R
在搜索字段中输入搜索模式。
在替换字段中,根据您想要实现的目标,输入以下语法之一:
\l
将字符更改为小写,直到字符串中的下一个字符。例如,
Bar
变为bar
.\u
将字符更改为大写,直到字符串中的下一个字符为止。例如,
bar
变为Bar
.\L
将字符更改为小写,直到文字字符串末尾\E
。例如,
BAR
变为bar
.\U
将字符更改为大写,直到文字字符串末尾\E
。例如,
bar
变为BAR
.
有关详细信息,请参阅RegEx 语法参考表。
感谢您的反馈意见!