前言:今天我来介绍FME在数据处理中常用的字符替换处理器,字符替换处理器(StringReplacer)用于查找指定的文本并将其替换。
文章目录
StringReplacer
根据输入的字符串或表达式在指定的属性列中查找,将匹配的字符串替换成指定的文本。
一、参数介绍
- Attributes
在该属性列中查找和替换字符串 - Mode
指定用“字符模式”还是用“正则表达式”模式进行字符查找和替换 - Case Sensitive
设置是否大小写敏感 - Text to Replace
进行查找和被替换的文本 - Replacement Text
用来替换的文本
二、如果属性值不包含待替换文本
- If Attribute Value Does Not Contain Text
Set Attribute Value To:
此选项用于当属性值查找不到待替换的文本,将其内容设置为指定的文本。默认不进行任何操作。
三、栗子
栗子一,用文本替换
源字符串:你大爷
查找字符串:你
替换文本:我
使用正则表达式:否
大小写敏感:否
结果:我大爷
栗子二,用正则表达式替换
源字符串:你大爷
查找字符串:*大爷
替换文本:我大爷
使用正则表达式:是
大小写敏感:是(中文大小敏感没用,适用于英文)
结果:我大爷
栗子三,用正则表达式+原字符替换
源字符串:你大爷
查找字符串:(你大爷)
替换文本:\1还是\1
使用正则表达式:是
大小写敏感:是(中文大小敏感没用,适用于英文)
结果:你大爷还是你大爷
解析:在正则表达式模式下,使用英文的“()”将查找字符串的内容括起来后,可以将内容复用在替换的文本中,用规则化的字符表示,例如"\1"、"\2"、"\3"…
所以是可以用多个“()”来复用多个字符串的,比如栗子三可以改成栗子四
栗子四,用正则表达式+多个原字符替换
源字符串:你大爷
查找字符串:(你)(大爷)
替换文本:\1还是\2
使用正则表达式:是
大小写敏感:是(中文大小敏感没用,适用于英文)
结果:你还是大爷
四、总结
StringReplacer转换器的使用还是相对简单的,复杂的匹配就看正则表达式写的如何,正则表达式则的使用就是另一门学问了,目前网上也有很多资源可以学习。
贴一下FME中的正则帮助。
五、相关转换器
StringSearcher转换器可以说和StringReplacer相似的,StringSearcher用于查找字符串,StringReplacer用于替换字符串。
关于StringSearcher的介绍就等我的下篇博客吧。
偷偷安利一下我的个人博客:蓝线白框