FME转换器 正则字符查找(StringSearcher)
生活随笔
收集整理的這篇文章主要介紹了
FME转换器 正则字符查找(StringSearcher)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- StringSearcher
- 一、參數(shù)介紹
- 1.1 基礎(chǔ)設(shè)置
- 1.2 高級(jí)設(shè)置
- 二、正則表達(dá)式介紹
- 2.1 基礎(chǔ)用法
- 2.2 前瞻后顧用法
- 三、總結(jié)
前言:寫了StringReplacer轉(zhuǎn)換器后,說要介紹StringSearcher轉(zhuǎn)換器的,如今鴿了好久。終于今天我來寫下這篇介紹——StringSearcher。
StringSearcher
簡(jiǎn)介:將輸入的字符串進(jìn)行正則匹配。如果輸入的字符串內(nèi)容匹配正則表達(dá)式,該字符串會(huì)從Matched端口輸出,并且匹配的字符內(nèi)容會(huì)存儲(chǔ)在指定的“Matched Result Attribute”屬性列中(可選將多個(gè)匹配結(jié)果以列表形式存儲(chǔ)在指定的“Matched Parts Attribute”屬性列中)。其他未匹配的,從NotMatched端口輸出。
一、參數(shù)介紹
1.1 基礎(chǔ)設(shè)置
- Search In
輸入用于正則匹配的字符串,通常選擇輸入的某個(gè)屬性字段 - Contains Regular Expression
指定匹配正則表達(dá)式,用于檢索輸入的字符內(nèi)容。 - Case Sensitive
設(shè)置是否區(qū)分大小寫,適用于英文,中文無效。 - Matched Result Attribute
用于存儲(chǔ)匹配結(jié)果的字段名稱,默認(rèn)名稱為_first_match。若設(shè)置的名稱與現(xiàn)有字段名稱重復(fù),會(huì)將其覆蓋。
1.2 高級(jí)設(shè)置
- 全部匹配結(jié)果列表名稱
該可選項(xiàng)設(shè)置后可以將所有的匹配結(jié)果存儲(chǔ)在指定的列表中。不設(shè)置的情況下只會(huì)在存儲(chǔ)匹配的第一個(gè)結(jié)果。 - 子匹配結(jié)果列表名稱
該可選項(xiàng)設(shè)置后可以將所有的子表達(dá)式匹配結(jié)果存儲(chǔ)在指定的列表中。不設(shè)置的情況下不存儲(chǔ)子表達(dá)式的匹配結(jié)果。子表達(dá)式的匹配結(jié)果即為用括號(hào)“( )”包含起來的子表達(dá)式匹配的內(nèi)容。
存儲(chǔ)在列表中的屬性內(nèi)容通過2種方式獲取:
二、正則表達(dá)式介紹
2.1 基礎(chǔ)用法
正則表達(dá)式是針對(duì)字符串處理的一種邏輯公式,既用事先定義好的特定字符及組合,形成一個(gè)“特定字符串判斷邏輯”。這個(gè)“特定字符串判斷邏輯”可以用來對(duì)字符串進(jìn)行邏輯過濾。
| | | 分支判斷符:表達(dá)邏輯判斷上的“或”,計(jì)算邏輯上的“or”關(guān)系。 | A|B |
| * | 字符限定符:表達(dá)有任意個(gè)指定字符,包含0個(gè) | A * ; * 等同于{0,} |
| + | 字符限定符:表達(dá)有一個(gè)以上指定字符,包含1個(gè) | A+ ; +等同于{1,} |
| ? | 字符限定符:表達(dá)有0個(gè)或者1個(gè)指定字符 | A? ; ?等同于{0,1} |
| { } | 字符限定符:表達(dá)指定字符的允許出現(xiàn)次數(shù) | A{1,3} 表示A可以出現(xiàn)1,2,3次; A{3,} 標(biāo)識(shí)A可以出現(xiàn)3次以上,包含3次 |
| . | 字符模式符:代表任意的單個(gè)字符 | .* 表示任意字符串 |
| \d | 字符模式符:代表任意的單個(gè)數(shù)字 | \d+ 則表示任意一串?dāng)?shù)字; \d{6} 則表示一串6位數(shù) |
| ^ | 位置指定符:代表開頭的位置 | ^廣州市 表示出現(xiàn)在開頭的“廣州市”字符 |
| $ | 位置指定符:代表結(jié)尾的位置 | 北京路$ 表示出現(xiàn)在末尾的“北京路”字符; ^中國$ 則表示完全匹配,只有“中國”字符 |
| [ ] | 集合限定符:用于包含字符集合 | [a-zA-Z] 表示任意英文字符;[一-龥] 表示任意漢字字符 |
| ( ) | 集合限定符:用于包含一個(gè)子表達(dá)式 | ^(\d{3})\d{8}$ 匹配11位數(shù)字并將前3位數(shù)字放入子匹配結(jié)果 |
2.2 前瞻后顧用法
| str1(?=str2) | 查找str2前面的str1 | 白(?=蘿卜) :提取“白蘿卜”的“白” |
| (?<=str2)str1 | 查找str2后面的str1 | (?<=白)蘿卜 :提取“白蘿卜”的“蘿卜” |
| str1(?!str2) | 查找后面不是str2的str1 | 黑(?!蘿卜) :提取非“黑蘿卜”的“黑” |
| (?<!str2)str1 | 查找前面不是str2的str1 | (?<!黑)蘿卜 :提取非“黑蘿卜”的“蘿卜” |
三、總結(jié)
StringSearcher轉(zhuǎn)換器的使用效果主要看對(duì)正則表達(dá)式的理解程度和熟練程度,所以如果想提高StringSearcher轉(zhuǎn)換器的使用效率則需要好好學(xué)習(xí)正則表達(dá)式的相關(guān)知識(shí)。
總結(jié)
以上是生活随笔為你收集整理的FME转换器 正则字符查找(StringSearcher)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜索,推荐,广告系统架构及算法技术资料大
- 下一篇: 爆强的一句话,工作之余放松放松!