当您想要搜索和替换特定文本模式时,可以使用正则表达式。它们可以帮助您进行模式匹配、解析、过滤结果等。一旦您了解了正则表达式的语法,几乎可以在任何语言中使用它。

  1. 按下Ctrl+R打开搜索和替换窗格。

    如果您需要在多个文件中搜索和替换,请按CtrlShift+R。

  2. 在顶部字段中输入搜索字符串,底部字段中输入替换字符串。
    1.png

    • 点击 正则表达式图标 以启用正则表达式。如果您想要检查正则表达式的语法,请将鼠标悬停在 正则表达式图标 上,并单击“Show expressions help”链接。
  3. 当您搜索包含特殊正则表达式符号的文本字符串时,CLion会自动在搜索字段中使用反斜杠 \ 转义它们。

    请注意,如果您首先复制(Ctrl+C)字符串,然后将其粘贴(Ctrl+V)到搜索字段中,正则表达式符号将不会被考虑在内。

    • 但是,当您专门搜索元字符,例如 .[{()\^$|?*+ 时,您需要使用反斜杠 \ 转义它们,以便它们可以被识别。
    • 例如,如果您需要查找 .,请输入 \. 在搜索字段中。
  4. 当您在搜索字段中输入字符范围时,CLion还可以匹配字母大小写。

    • 例如,如果您只想搜索大写字符,请在搜索字段中输入以下内容:
    \b[A-Z]
  5. 如果搜索字段中未选择 匹配大小写图标,CLion会搜索小写和大写两者。

    • 在搜索字段中选择 匹配大小写按钮 来匹配指定范围的大小写。
      2.png
  6. 浏览发现的出现时,CLion会显示替换提示,以便您在单击“Replace”按钮之前查看潜在的结果。
    3.png

使用正则表达式捕获组和反向引用

您可以将正则表达式放在括号中以进行分组。每个组都有一个从1开始的数字,因此您可以在替换模式中引用(反向引用)它们。请注意,组0表示整个正则表达式。但是,您不仅可以通过数字$n引用捕获的组,还可以通过名称${name}引用它们。

例如,对于编号的捕获组,使用以下语法:

查找字段

<h2>(.*?)</h2>

替换字段

$1

对于命名的捕获组,使用以下语法:

查找字段

<h2>(?<title>.*?)</h2>

替换字段

${title}

查找并替换捕获的组

让我们考虑以下XML代码:

<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"/>
  1. 打开搜索和替换窗格Ctrl+R。
  2. 在搜索字段中,输入括号(),这将指示捕获组,例如:\stitle="(.*)?"\s*(/>*)
  3. 在替换字段中,通过从1开始的数字引用(反向引用)这些组,例如:

    $2<title>$1</title>
  4. CLion根据您的搜索规范突出显示找到的出现并显示具有替换字符串的提示。
    4.png

切换字符大小写

您可以使用正则表达式更改与某些标准匹配的字符的大小写。

  1. 打开搜索和替换窗格Ctrl+R。确保在搜索字段中选择了 正则表达式图标
  2. 在搜索字段中输入搜索模式。
  3. 在替换字段中,根据您想要实现的目标,输入以下语法之一:

    • \l 将字符更改为小写,直到字符串中的下一个字符。
      例如,Bar 变为 bar
    • \u 将字符更改为大写,直到字符串中的下一个字符。
      例如,bar 变为 Bar
    • \L 将字符更改为小写,直到文字字符串 \E 的结尾。
      例如,BAR 变为 bar
    • \U 将字符更改为大写,直到文字字符串 \E 的结尾。
      例如,bar 变为 BAR

5.png

标签: none