StringSearcher
对指定的表达式执行正则表达式匹配。如果表达式与模式匹配,则通过匹配与正则表达式匹配的原始搜索字符串的部分存储在匹配结果属性(可选地将匹配的表达片段存储在“”中指定的属性列表中。属性匹配的部分,以及每件作品的起始索引)。否则,则通过NotMatched端口。
这个转换器的名称和灵感来自UNIX实用程序grep,它在文本文件中搜索模式。
参数
要搜索的输入文本。
要使用此转换器解析字符串的各个部分,需要使用正则表达式。与正则表达式匹配的输入文本部分作为“属性匹配的部分”列表中。然后,通过右键单击此列表,并指示要公开供以后使用的元素数量,可以将此列表中的元素公开给Workbench。请看下面的一些例子。
支持高级正则表达式(AREs)。有关AREs的完整描述,请参阅与perl兼容的正则表达式语法http://perldoc.perl.org/perlre.html#Regular-Expressions。
简而言之,ARE是一个或多个分支,由|分隔,匹配任何与任何分支匹配的内容。
对特殊汉字及其意义的简要概括如下:
| | 分离“分支”(或选择) |
* | 一个序列,其中包含0个或多个匹配项 |
+ | 在它之前的一个或多个匹配序列 |
吗? | 0或1个与它之前的内容匹配的序列 |
。 | 匹配任何单个字符 |
^ | 匹配值的开始 |
美元 | 匹配值的结尾 |
[] | 包含一组字符选择 |
() | 封装一个“子表达式”——任何与每个子表达式匹配的内容都被放入“匹配部分属性”{}list属性中 |
一个 | 可以列出任何要匹配的字符 |
例子:
^一个 | 匹配任何以A开头的值 |
^ [0 - 9] | 匹配任何以数字开头的值 |
^[0 - 9]+美元 | 匹配任何只包含数字的值 |
^(牛肉|鸡肉)美元 | 匹配“牛肉”或“鸡肉”的值 |
^([0 - 9]*)([0 - 9]*)美元 | 匹配两个以空格分隔的整数,将第一个数字放入“匹配零件属性”{0},第二个放入“匹配零件属性”{1} |
^ N ([0 - 9] [0 - 9]) [] ([0 - 9] [0 - 9]) [] ([0 - 9] [0 - 9]) | 匹配N23.45.11,将23放入“匹配零件属性”{0},将45放入“匹配零件属性”{1},将11放入“匹配零件属性”{2} |
的正则表达式字段还可以包含任意数量的特殊字符。
字符可以表示为常规字符,但也可以包含任意数量的控制字符。
特殊字符序列(仅限高级编辑器)的解释如下:
序列 | 描述 |
---|---|
Ctrl + Shift + h (h ^) |
退格键(0 () |
Ctrl + Shift + l (l ^) |
换页(0 x0c) |
Ctrl + Shift + j (^) |
换行符(0 x0a) |
Ctrl + Shift + r (^) |
回车(0 x0d) |
Ctrl + Shift + i(^我) |
选项卡(0 x09) |
Ctrl + Shift + k (^ k) |
垂直制表符(0 x0b) |
定义特殊字符
您可以通过基本或高级编辑器定义特殊字符。从参数菜单中点击打开编辑器:
基本的文本编辑器
选择常数从字符串类型列(或,在某些转换器中,值列),然后单击列中的空字段:
单击列右侧的browse按钮,打开编辑值对话框。在这个编辑器中,使用上面表格中的快捷键输入字符。
先进的文本编辑器
使用上表中的快捷方式输入字符。
注意:要查看制表符,单击左下角的选项菜单并选择显示空格/制表符。
注意,根据转换器的配置方式,匹配可以是大小写敏感的,也可以是大小写不敏感的。
用于存储匹配结果的属性名。默认属性名是_first_match。
相关的变形金刚
若要替换字符串中与正则表达式匹配的子字符串,请使用StringReplacer变压器。
额外的资源
方法中的Regex编辑器测试正则表达式包含正则表达式字段的上下文菜单。
有关正则表达式语法的更多信息,请参见http://perldoc.perl.org/perlre.html#Regular-Expressions。
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
变压器的历史
这个转换器之前被命名为Grepper。
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。
标签关键词:grep