原文发布时间:2011-01-04

作者:糖糖

在Word或Excel等文本或数字编辑软件里,都有‘查询’、‘替换’的功能,该功能可以快速高效地帮助我们查找到文本或表格中的查询对象,需要的时候甚至可以一步替换成想替换的内容。在FME里同样也有这种查找或替换文本串功能的转换器——StringPairReplacer、StringReplacer、StringSearcher。以下简单介绍这三个转换器的功能和之间的差别:

一、最简单快速方便的查找替换转换器——StringPairReplacer。顾名思义, 该转换器以‘查找值 替换值 查找值 替换值…’成对的语法形式完成查询替换功能。如下

连接读模块后,在转换器的第一个参数Source Attribute的下拉菜单中选择源属性中要查找的属性列;第二个参数case Sensitive选择是否区分查找对象的大小写,如果选择'Yes'表示区分大小写;第三个参数Replacement Pairs中按语法填入查找值和替换值,可以是一对或多对,注意的是查找值和替换值之间要用空格隔开;第四个参数Result Attribute可以命名储存替换后值列的名字,默认的名称为_replaced。

例1:该案例中要将源属性值中'b’替换为's’,'o'替换为'a'

源属性值是:

bobby

Replacement Pairs设置:

b s o a

结果为:

sassy

例2:如果查询对象里也包含一个空格,必须用加一个\来区分

源属性值为:

billy bob

成对替换值为:

y\ b a

则结果为:

billaob

二、能用正则表达式查询替换的转换器——StringReplacer

与StringPairReplacer相比,该转换器不是把查找值和替换值一并写在语法里,而是在各自的参数中分别设置,并且在Use Regular Expressions设置为'Yes'的情况下使用高级正则表达式(AREs)。简单地说,AREs是一个或多个被‘|’分隔的分支,与任意能与之匹配的相匹配,以下为表达式中各符号的含义:

|  分隔符

*  0个或多个其之前的匹配的顺序

+  一个或多个其之前的匹配的顺序

?  0个或一个其之前的匹配

.  匹配任何单个字符

^  匹配开头的值

$  匹配结尾的值

[ ] 包含某个字符选择的设置

( )包含某个子表达式——无论匹配的是_{}列表属性里的哪个子表达式

a  能够列入可匹配的任意字符

连接好转换器后,在Attribute参数中选择查找的属性列;Text to Find中设置查找的文本,可以输入要查找的文本对象,也可以在列表中选择属性列;Replacement Text中键入替换值,如果在Use Regular Expressions设置为'Yes',则键入正则表达式;最后Case Sensitive中设置是否区分大小写。

例1:该案例是最简单的子字符串替换类型,不用正则表达式功能的纯文本替换

源字符串: Bobby

被替换文本: obb

替换文本: ill

是否规则表达式: no

是否区分大小写: yes

结果: Billy

例2:  该案例中,0个或多个‘b’字符被空值替换

源字符串: Bobby

被替换文本: b*

替换文本:

是否规则表达式: yes

是否区分大小写: yes

结果: Boy

例3:  该案例中, 'bby'被复制并按表达式的模式替换(连字号优先)

源字符串: Bobby

被替换文本: b*y

替换文本: --\\0-\\0

是否规则表达式: yes

是否区分大小写: yes

结果: Bo--bby-bby

以上是StringPairReplacer和StringReplacer的介绍.

FME里的查询替换转换器(一)相关推荐

  1. oracle里的查询转换

    oracle里的查询转换的作用 Oracle里的查询转换,有称为查询改写,指oracle在执行目标sql时可能会做等价改写,目的是为了更高效的执行目标sql 在10g及其以后的版本中,oracle会对 ...

  2. Angular2 - [innerHTML] pipe(把字符串里的 /n 替换成 <br/>)

    需求 把接口返回的使用说明字符串innerHTML出来: 本来想直接  [innerHTML] 就可以了,但是事不遂人愿,那就写个pipe过滤一下: 过程 // 接口返回字符串:// "co ...

  3. shell变量里的字符替换

    shell变量里的字符替换 b=${a/123/321};将${a}里的第一个123替换为321 b=${a//123/321};将${a}里的所有123替换为321 shell调试: sh -x a ...

  4. mysql对结果再查询_SQL如何在查询结果里再次查询?

    展开全部 可以使用括号"(select查询子句)"套嵌一个查询结果. 语法格32313133353236313431303231363533e59b9ee7ad9431333339 ...

  5. 仿养生网 帝国CMS 更新后域名栏目链接一直没变 解决方法:在后台地图--模板标签替换里直接全部替换

    帝国CMS安装教程 http://jingyan.baidu.com/article/f54ae2fcf2b3921e93b84955.html 安装完后,  更新后域名栏目链接一直是这个http:/ ...

  6. linux 查询替换文件内容吗,Linux 下查询文件的方法 替换文件内容

    在当前目录里查找所有名为以 php 开头的文件: find -name "php*" 在subdir 目录里查找所有的名为以 php 开头的文件: find subdir -nam ...

  7. mysql 拼音搜汉字,[转]在mysql 里实现查询汉字的拼音首字母

    php 里查询汉字的拼音首字母已经有很多参考的代码了. 现在给出在mysql 里实现的, 测试环境是mysql-5.0.27-win32 1.建立拼音首字母资料表 DROP TABLE IF EXIS ...

  8. FME中的常用kml转换器介绍(一)

    原文发布时间:2010-05-06 作者:Peri 1.KML介绍 KML (Keyhole Markup Language)是一种基于XML的OGC标准,随着Google Earth的广泛应用,KM ...

  9. 一个从文本文件里“查找并替换”的功能

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # -*- coding: UTF-8 -*- file = inp ...

最新文章

  1. 迁移学习,让深度学习不再困难……
  2. 金山手机安全卫士试用报告
  3. Eclipse中创建SpringBoot项目流程,及报错解决方案
  4. 嵌入式系统中进程间通信的监视方法
  5. node更新到最新版本_win10怎么更新flash到最新版本「系统天地」
  6. 【AI视野·今日NLP 自然语言处理论文速览 第十一期】Mon, 21 Jun 2021
  7. Scala 知识点掌握1
  8. e-006 matlab,基于MATLAB进行潮流计算
  9. 计算机春季高考试题答案,最新春季高考历年真题-天津市春季高考计算机试卷...
  10. 【DOS BAT】Windows下微信双开、微信多开
  11. 基于孪生网络的单目标跟踪持续汇总
  12. 逻辑为基、数企赋能(NO.7)—非逻辑思维
  13. 关于KX混响插件:REVERB R详解
  14. 将两个字符串连接起来,不要用strcat函数。
  15. 专属程序员的西游记,不是程序员读不懂哦?
  16. 密码分析之单表代换原理详解与算法实现
  17. 转!!以太网方案设计
  18. 2017蓝桥杯B组国赛 瓷砖样式
  19. 寻找100以内的质数
  20. vue后台管理侧边栏菜单布局

热门文章

  1. 发明专利申请所需要的资料及程序
  2. 强大多云混合多K8S集群管理平台Rancher入门实战
  3. 软件工程师视角的项目合同分析
  4. JS中常用的几种组织架构图的优点
  5. 装修半包与全包的区别
  6. 网页出现DNS_PROBE_FINISHED_NXDOMAIN 解决方法
  7. 29、基于51单片机简易电子琴(有存储功能)系统设计
  8. 机器学习与量化交易∙笔记(3)
  9. c语言五子棋实验报告免费下载,C语言 五子棋程序
  10. 历届奥斯卡获奖影片(1927—2012)(图)