当使用FME Workbench支持的字符串操作函数时,使用以下准则在字符串输入参数中避免逗号(,)和双引号(“):
如果字符串输入参数包含逗号,则将整个字符串括在双引号中。
例如:@FindString(@Value(_src),"2,3")
如果一个字符串参数输入开始和/或结束在双引号中,包围在双引号中的字符串,并通过前加反斜杠来避免任何其他双引号 (\")。
例如:@FindString(@Value(_src),""He said, \"Wow!\""")。
如果字符串输入参数不以双引号启动和/或结束,但在字符串中的其他地方包含双引号,则不必避免它们。
-------------------------------------------------------------------------------------------------------------------------------
ConvertEncoding(str1,str2,[区分大小写])
对str2 指定的字符串编码为str1所指定的期望结果. 如果str2 为Null,它也会转换为期望的编码形式但是输出结果为Null. 如果caseSensitive为FALSE (默认), 那么str2 的原始(源)编码将不转换;
也就是说,标记为新编码的字符串本身不会有任何改变. 如果caseSensitive为TRUE,那么源字符串将在源编码基础上转换为期望的编码形式.
对于str2的有效编码值的列表, 临时添加等效 AttributeEncoder到工作空间,打开转换器参数对话框,然后在下拉菜单中打开目标编码. 有效值在括号里(例如utf-8)
FindRegEx(str, regExp, [startIdx], [区分大小写], [-1])
返回字符串str 中以与startIdx 匹配的regExp 开头的索引,或未找到字符串时返回-1。若未指定startIdx ,搜索从索引0开始。若为caseSensitive FALSE,搜索不分大小写。否则,搜索分大小写。若指定-1 ,FindRegEx()返回str 从开头到结尾startIdx的str 索引。
等同转换器:StringSearcher
FindString(str, findStr, [startIdx], [区分大小写])
返回字符串str 中以与startIdx 匹配的findStr 开头的索引,或未找到字符串时返回-1。若startIdx 为负整数,FindString()返回str 从结尾开始startIdx的str 字符串索引,匹配findStr ,从后向前(从左至右)。若未指定startIdx ,搜索从索引0开始。若为caseSensitive FALSE,搜索不分大小写。否则,搜索分大小写。
等同转换器:StringSearcher
格式(formatStr, num)
按照%转换说明符formatStr将指定数字num格式化,并返回结果字符串。该函数调用Tcl函数format ,通过在format {formatStr} {num}格式中创建命令字符串来格式化数字。
% 字符必须先于formatStr。例如,从浮点值12345.6789返回字符串12345.68:Format(%.2f,12345.6789)
获取更多指定信息formatStr,登陆http://www.astro.princeton.edu/~rhl/Tcl- Tk_docs/tcl/format.n.html。
FullTitleCase(str)
返回每个单词首字母的字符串,而不是字符串首字母,将其转换为Unicode首字母大写的变量(或在没有首字母变量时转为大写字母),以及其余的字符串小写字母。
若小括号是字符串开头、或在空格后时,该函数忽略小括号,并将连字符(-)以空个字符对待。
等同转换器:StringCaseChanger
GetWord(str, wordNum)
返回wordNum中str 单词。若wordNum 为负整数, GetWord()返回wordNum末尾的str单词。若 wordNum无单词,则返回空白字符串。str 单词必须由空格隔开(space, tab, return carriage, 及其他)。
Left(str, n)
返回包含n 字符串最左字符的str。
LowerCase(str)
返回其在str 中的所有字母转换为小写的字符串。
等同转换器:StringCaseChanger
PadLeft(str, n, [char])
返回至少带有n 字符的输入字符串。若输入字符串str 没有n 字符长度,则用前缀填补至指定char长度。若没有指定char ,则应用空格。
等同转换器:StringPadder
PadRight(str, n, [char])
返回至少带有n 字符的输入字符串。若输入字符串str 没有n 字符长度,则用前缀填补至指定char长度。若没有指定char ,则应用空格。
等同转换器:StringPadder
ReplaceRegEx(str, regExp, newStr, [区分大小写])
返回所有字符序列匹配regExp 并替换newStr的字符串。若为caseSensitive FALSE,搜索不分大小写。否则,搜索分大小写。
注意: 如果参数包含逗号或括号,则将参数括在双引号内。例如:@ReplaceRegEx(@Value(string1),"[^\,](.*)",\1)
等同转换器:StringReplacer
ReplaceString(str, oldStr, newStr, [区分大小写])
返回oldStr 中每个str 实例用newStr代替的字符串。若为caseSensitive FALSE,搜索不分大小写。否则,搜索分大小写。
等同转换器:StringReplacer
Right(str, n)
返回包含n 字符串的str最右字符的子字符串。
StringLength(str)
返回输入字符串长度。
等同转换器:StringLengthCalculator
Substring(str, startIdx[, n])
返回以str 开头并包含startIdx 字符的n 子字符串。若startIdx 为负整数,Substring()返回str从后StartIdx 向前的str 子字符串,包括从前到后计数的n字符(从左至右)。若未指定n ,子字符串以startIdx 开头并转到字符串末尾。若startIdx 大于str长度,则返回空白字符串。
TitleCase(str)
返回一个字符串,str 其中第一个字符转换为Unicode“标题大小写”变体(如果没有“标题大小写”变体,则转换为大写),其余字符串为小写。
等同转换器:StringCaseChanger
Trim(str, [chars])
返回一个字符串,其中str 中的字符与chars中的字符匹配,去掉str 中的前导和尾随字符。如果未指定字符,则删除空白(制表符、空格、回车)。
TrimLeft(str, [chars])
返回一个字符串,其中str 中的字符与chars中的字符匹配,去掉str 中的前导字符。若未指定chars ,则删除空白(制表符、空格、回车)。
TrimRight(str, [chars])
返回一个字符串,其中str 中的字符与chars中的字符匹配,去掉str 中的尾随字符。若未指定chars ,则删除空白(制表符、空格、回车)。
UpperCase(str)
返回str 其中的所有字母转换为小写的字符串。
等同转换器:StringCaseChanger
WordCount(str)
返回str中单词数。单词由空格隔开(space, tab, carriage return, 及其他)。