结构化搜索和替换示例
如您所知,常规搜索与结构化搜索的主要区别在于,结构化搜索会在编程语言中查找结构化模板。
结构化搜索的妙处在于,您可以基于现有模板创建模式,从而在搜索和替换代码时节省时间。
丰富的现有模板列表涵盖了大量用例,从简单模式到更复杂的模式。
模式中的每个项都由变量组成,这些变量由两侧的 $ 符号限定。
HTML 和 XML 示例
以下示例展示了如何在 HTML 和 XML 代码中使用结构化搜索。
搜索 XML 和 HTML 标签、属性及其值
用于搜索标签的最简单模板是 <$tag$/>。
通过对变量
$tag$施加约束,您可以指定要查找的标签。 例如,如果您指定li,将会获取所有li标签。请考虑以下用于在 XML 和 HTML 中进行搜索的模板:
<$tag$ $attribute$=$value$ />。 例如,若为变量$attribute$指定文本过滤器id,并为变量$value$的文本过滤器指定正则表达式\d+,则可以找到所有在id属性中具有数字值的标签。
删除 id 属性大于 2 的所有行
创建一个 HTML 文件,并粘贴以下代码:
<!doctype html> <html> <head> <title>Structural Search Example</title> <body> <ul> <li id="1">Example line 1</li> <li id="2">Example line 2</li> <li id="3">Example line 3</li> <li id="a">Example line a</li> <li id="5">Example line 5</li> </ul> </body> </html>在主菜单中,转到 。
在 语言(L) 列表中,选择 HTML。
将以下字符串粘贴到 搜索模板 字段:
<$tag$ $attribute$="$value$">点击变量
$tag$。在过滤器面板中,点击 添加修饰符 ,选择 文本 ,并在值字段中输入
li。如果过滤器面板不可见,请点击
切换修饰符面板。

点击变量
$attribute$。在过滤器面板中,点击 添加修饰符 ,选择 文本 ,并在值字段中输入
id。点击变量
$value$。在过滤器面板中,点击 添加修饰符 ,选择 文本 ,并在值字段中输入
\d+。正则表达式
\d+将搜索结果限制为数字值。 因此,包含id="a"的行将被过滤掉。在不离开过滤器面板焦点的情况下,点击 添加 按钮,选择 脚本 ,并粘贴以下代码:
value.getText().replaceAll (/"/, '').toInteger() > 2脚本读取变量
$value$的内容,并将其作为字符串返回(例如,"1")。 然后,脚本会替换所有引号,将字符串值转换为整数,并与2进行比较。
将 li 标签中 class 属性的全大写值转换为小写
创建一个 HTML 文件,并粘贴以下代码:
<!doctype html> <html> <head> <title class="EXAMPLE">Structural Replace Example</title> <body> <ul> <li class="EXAMPLE">Example line 1</li> <li class="example">Example line 2</li> <li class="EXAMPLE">Example line 3</li> <li class="example">Example line a</li> <li id="EXAMPLE">Example line 5</li> </ul> </body> </html>在主菜单中,转到 。
在 语言(L) 列表中,选择 HTML。
将以下字符串粘贴到 搜索模板 字段:
<$tag$ $attribute$="$value$">选中 区分大小写(C) 复选框。
点击变量
$tag$。在过滤器面板中,点击 添加修饰符 ,选择 文本 ,并在值字段中输入
li。点击变量
$attribute$。在过滤器面板中,点击 添加修饰符 ,选择 文本 ,并在值字段中输入
class。点击变量
$value$。在过滤器面板中,点击 添加修饰符 ,选择 文本 ,并在值字段中输入
[A-Z].*。正则表达式
[A-Z].*将搜索结果限制为全大写值。在 目标(T) 列表中,选择 值。 此过程会高亮显示
class属性的所有全大写值。在 替换模板 字段中,粘贴
$to_lower_case$变量。点击变量
$to_lower_case$。在过滤器面板中,点击 添加修饰符 ,选择 脚本 ,并粘贴以下代码:
value.getText().toLowerCase()
点击 查找。
在 查找 工具窗口中,预览找到的结果并点击 全部替换(A)。
