1、文件說明
本篇文件將透過舉例,解析字元的比較運算子之間的用法和區別,涉及到的運算子:CO|CN|CA|NA|CS|NS|CP|NP
2、用法和區別
用法總覽
以下舉例,幾乎都使用一個字元變數和一個硬編碼字元進行對比的方式,忽略尾部空格,所以需要注意
凡是比較尾部空格的,需要特別注意變數的長度和字元的長度,考慮尾部空格對結果的影響
2.1、CO僅包含
S1 僅含有 S2中的字元(區分大小寫,比較尾部空格)
2.1.1、S1僅有a等於S2中的a,其實還有個尾部空格
去掉尾部空格(尾部空格參與比較的運算子同理)
實際的內容是這樣,S1除了a,還包含4個尾部空格,而S2中沒有尾部空格,因此結果為FALSE
2.1.2、S1含有S2中沒有的c
2.2、CN包含以外
S1包含S2中以外的字元(區分大小寫,比較尾部空格)
2.2.1、S1包含S2中沒有的c
2.2.2、S1僅有a等於S2中的a,沒有其他S2以外的字元
2.3、CA包含任意
S1至少包含S2中的任意一個字元(區分大小寫,比較尾部空格)
2.3.1、S1包含S2中的a,其實還有個尾部空格
如果變數直接比較,包含尾部空格,其實是用空格進行了對比,所以任何情況結果都是TRUE
2.3.2、S1沒有包含S2中的任何字元
2.4、NA不包含任意
S1不包含S2的任意一個字元(區分大小寫,比較尾部空格)
2.5、CS包含字串
S1包含S2整個字串
2.6、NS不包含字串
S1不包含S2整個字串
2.7、CP符合模式
S1符合S2的模式
此處使用"*"和"+"作為萬用字元
"*"匹配"字串"
"+"匹配"字元"
如果需要區分大小寫,需要匹配*和+字元,需要匹配空格,則需要透過#號進行轉義
大小寫要求:#B #c
匹配*或+
匹配空格
2.8、NP不符合模式
S1不符合S2的模式
3、特殊情況
除了以上要注意區分大小寫和字元尾部空格外,還需要注意變數型別
例如:CO中,如果S2 type string型別,且為初始值,S1無論何值,結果都是FALSE
如果 S1 type string型別,且為初始值,S2無論何值,結果都是TRUE
再例如:CA中,S1或S2為string型別,且為初始值,則結果都是FALSE