代码搜索

使用正则表达式搜索,以及悬停时显示的结果代码

代码搜索视图让您可以扫描数据库中的每一段脚本。您可以组合使用以下选项:

按钮选项效果
.*正则表达式把您的查询当作正则表达式来解释,让您用上模式匹配的全部能力(量词、字符类、锚点等)。区分大小写和全字匹配选项仍可同时使用。
Aa区分大小写勾选后,搜索将区分大小写——“A”和“a”被视为不同的字符。
\b全字匹配只保留未与其他字母或数字相连的匹配结果。以空格、标点等分隔的词才会被匹配。

这三个按钮按此顺序位于输入框内的右侧;当输入框不为空时,它们后面会出现一个叉号,用于清空输入框。

当您离开输入框时——点击别处、按 Tab 键,或者自 3.2.0 版起按 Enter 键——或者从历史中选择一次搜索时,搜索就会开始。自同一版本起,按 Esc 键会离开输入框并放弃您在其中输入的内容:当前的搜索仍然显示。搜索文本和三个选项由浏览器记住,适用于所有数据库。

搜索历史

点击输入框会展开您最近的 20 次搜索,最新的在最上面;输入时列表会随之筛选。点击叉号可将某次搜索从历史中移除。

结果

计数器显示已显示的结果数和找到的结果总数。结果以每批 100 条的方式显示:在列表底部,+100 会再显示接下来的 100 条(剩余不足 100 条时显示为 +N);要显示剩余的 N 条,请点击全部(N)。

解读一条结果

每条结果都是一行,其呈现方式与字段与公式中相同:类型图标、依赖徽章、“Fx”,然后是该元素的面包屑导航,其中的粗体部分指明找到该文本的代码。

  • 鼠标悬停在粗体部分上时,代码会显示在一个气泡中,找到的文本以高亮显示。
  • 点击粗体部分会在该代码处打开 Ninox 编辑器,找到的文本以高亮显示。
  • 在编辑模式(“Edit mode”)下,鼠标悬停时该行右侧会出现一个红色按钮:对于涉及字段的行,它会在表单上选中该字段;对于其他行,它会打开代码编辑器。
  • 点击字段的依赖徽章,会在字段与公式标签页中打开该字段。

搜索范围

搜索会遍历数据库中的全部代码:

  • 全局代码和“After Open”触发器;
  • 表的触发器;
  • 字段的公式和触发器:按钮、创建后或修改后触发器、“Display only if”、读写权限、显示格式、动态选项、约束;
  • 视图的列:其公式和条件格式;
  • 打印报表:包含花括号公式的文本、HTML 块、修订列、带公式的图片字段,以及 Carbone 报表的数据源(只读取数据源的公式,不读取 Word 文件)。

正则表达式示例

需要重温正则表达式语法?https://regexone.com 上有一份简明教程。

下面这个正则表达式可以找出所有 where 子句按 ID 过滤的 select:

\bselect\b[^;]*(?<!\.)\bid\b

这有助于您快速找出可以把 first(select myTable where ID = searchId) 替换为更快写法 record(myTable, searchId) 的地方。

逐步解析:

正则表达式片段说明
\bselect\b匹配完整单词 select(避免匹配到“selected”之类的词)。
[^;]*匹配零个或多个除 ; 以外的字符,确保 select 与 id 之间不出现分号。
(?<!\.)一个否定后行断言,确认 id 之前紧邻的位置没有 . 。
\bid\b匹配完整单词 id(避免匹配到“userid”或“ident”之类的子串)。