如果需要对现有资料需要进行分析,就必然用到搜索工具,本文对Filelocator这个软件的搜索技巧,简单归类,转载至官方文档,方便大家查阅。
通过使用AND、OR、NOT、NEAR、REGEX及LIKE 操作符,FileLocator Pro的布尔表达式引擎支持网页式的搜索表达式。在 选项页签 中可以将FileLocator Pro设置为对整个文件匹配(默认)或者对逐行匹配。
1.逐行示例
表达式 work AND document 会搜索包含了 work 与 document 的行。由于FileLocator Pro 隐含带有AND,此表达式还可以写为 work document 。
表达式 work OR document 会搜索包含’work’ 或 ‘document’ 的行。
表达式 work NOT document 会搜索包含’work’但不包含 'document’的行。
2.整个文件示例
表达式 work AND document 搜索包含 work 与 document 的文件。这两个词可能在同一行或者整个文件中的不同行。表达式 work NOT document 搜索文件中任何位置包含 work 但不包含 document 的文件。
注:操作符 AND、OR和NOT必须是大写字母,否则将被作为搜索词。
可以使用引号来搜索原义词组,如:“work document” 会搜索确切词组 work document。
可以使用括号指定词组分组,如:表达式 work AND (document OR letter) 会搜索包含了 work且包含了 document 或 letter 的行。
3.LIKE操作符
如果不确定搜索词的拼写,或者在搜索文本中搜索词可能会被误拼,那么可用LIKE操作符指定一个大致的搜索词。例如:LIKE necessary : 将不仅找到 necessary ,而且还有像 neccessary 这样含有稍微变化的词。可以在 配置设置 中更改相似程度。
4.NEAR操作符
要指定在搜索文本中两个搜索词应当彼此靠近,请使用NEAR操作符。例如:work NEAR document :将仅会匹配上相距在一定字符数之内(最大字符距离可在 配置设定 中指定)的搜索词。
5.REGEX操作符
要指定一个词组为正则表达式,请使用REGEX操作符。例如:work AND REGEX “\d{5,6}”,将会匹配上包含单词 work 以及含有正则表达式 \d{5,6} (即,含有一个5-6位数的数字)的任何文档。要指定永远都将词组作为正则表达式来对待,即不需要使用REGEX操作符,请使用布尔正则表达式类型(见下文)
6.LINES操作符
LINES操作符针对后边的表达式限定了要搜索的行。例如:LINES:3-5 (tower AND london) 将仅在第3,第4和第5行中搜索表达式 tower AND london
7.布尔子表达式
布尔表达式是由子表达式组成的。子表达式的类型将取决于选用的 表达式类型 。
1.布尔 (无通配符1):完全按照输入的用每个词组进行匹配,还会匹配上部分匹配上的单词。例如:fish 将会匹配上 fish, fishing and selfish。
2.布尔 (有通配符1):允许使用通配符’’ 和 ‘?‘字符。’?’ 将匹配上任何单个字符,而’‘将匹配上单词结束前的零个或多个字符。例如:fish* 将匹配上单词fish 、fishing 和 selfish。通配符设置还允许边界匹配,方法是通过使用字符’<’ 和 ‘>’ 指定单词的开始和结尾,例如:<fish> 将仅匹配上完整单词 fish ,不会匹配上 fishing 或 selfish 。类似地, fish> 将匹配上 fish 和 selfish 但不会匹配上 fishing ,因为单词必须以 fish 结尾。要搜索fish* 或 fish> 原始文本,请将搜索词放入引号中,如:“fish*” 或 “fish>”
3.布尔正则表达式,将每个词组作为正则表达式。如果正则表达式包括空格或括号,那么就用引号将表达式分为一组。例如:trout.* OR “fish(es|ing)”
4.全字匹配,完全按照输入的用每个词组来匹配。例如:fish 将仅匹配上单词 fish ,而不会匹配上 fishing 或 selfish 。
1 在选项页签 中可以指定通配符的设置 (默认为允许通配符)。
8.示例:布尔正则表达式
通过使用布尔正则表达式类型,可以用操作符AND、OR和NOT将各个正则表达式搜索连在一起。正则表达式是通过每一行来进行对其评估,而对这些正则表达式的结果进行了布尔表达式组合后的行为,即,是按逐行还是按整个文件可在 选项页签 中定义。
逐行 示例:表达式 [0-9]+ AND document 搜索包含一个数字与单词 document 的行。表达式 “[a-z]+@[a-z]+” NOT “.(com|net)” 搜索带有像电子邮件地址,但不包含 .com 或 .net 的行。注意此处使用了用于表示正则表达式分组的引号(否则括号会被作为布尔表达式分组)。
整个文件 示例:表达式 “([0-9]+.){3}[0-9]+” AND error 搜索包含IP地址以及单词 error 的文件,而它们不必在同一行出现。使用引号标出正则表达式中正则表达式类型的部分。
注:由于布尔正则表达式搜索的复杂特性,使用它通常比使用其它表达式类型要慢。因此仅推荐在需使用其具体能力时才使用。
合理的脚本代码可以有效的提高工作效率,减少重复劳动。
9.作者答疑
如有疑问,敬请留言。