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