原文发布时间:2011-01-06
作者:糖糖
在FME里的查询替换转换器(一)里介绍了两种查询替换转换器StringPairReplacer和StringReplacer的用法,本文继续介绍第三个查询转换器StringSearcher的用法
该转换器曾用名为Grepper,为了更准确表达其功能重命名为StringSearcher。在转换器中设置正则表达式,对指定的属性与之执行匹配,匹配成功的记录从MATCHED端输出,否则从FAILED端输出。
参数设置:
* 0个或多个其之前的匹配的顺序
+ 一个或多个其之前的匹配的顺序
? 0个或一个其之前的匹配
. 匹配任何单个字符
^ 匹配开头的值
$ 匹配结尾的值
[ ] 包含某个字符选择的设置
( )包含某个子表达式——无论匹配的是_{}列表属性里的哪个子表达式
a 能够列入可匹配的任意字符
举例:
^A 表示与任意A开头的值匹配
^[0-9] 表示与任意数字开头的值匹配
^[0-9]+$ 表示与任意数字组合的数值匹配
^(beef|chicken)$ 表示与包含“beef” 或 “chicken”的值匹配
^([0-9]*) ([0-9]*)$ 表示与两个被空格分隔的整数匹配,然后将第一个数字输入到_matched_parts{0},第二个数字输入到_matched_parts{1}
^N([0-9][0-9])[.]([0-9][0-9])[.]([0-9][0-9]) 表示与N23.45.11匹配,然后将23输入到_matched_parts{0},将45输入到_matched_parts{1},将11输入到_matched_parts{2}
有关正则表达式的详细内容,可在FME功能函数和管道工厂手册里参考Syntax of Tcl Regular Expressions。