十三、字符串操作函数
1、Fill()
功 能:建立一个由指定字符串填充的指定长度的字符串。
语 法:Fill ( chars, n )
参 数:chars:string类型,指定用于重复填充的字符串;
n:long类型,指定由该函数返回的字符串的长度。
返回值:String。函数执行成功时返回n个字符的字符串,该字符串以参数chars中的字符串重复填充而成。如果参数chars中的字符个数多于n个,那么使用chars字符串的前n个字符填充函数返回的字符串;如果参数chars中的字符个数少于n个,那么使用chars字符串反复填充,直到返回的字符串长度达到n为止。如果任何参数的值为NULL,Fill()函数返回NULL。
示 例:1、下面的代码返回由35个“*”组成的字符串。
Fill(“*” , 35)
2、下面的代码返回”-+-+-+-”。
Fill(“-+” , 7)
2、LastPos()
功 能:查找目标字符串在原字符串中最后一次出现的位置。
语 法:LastPos ( string1 , string2{,searchlength} )
参 数:string1:string类型,源字符串,我们要在其中查找字符串string2出现的位置;
string2:string类型,目标字符串,我们要在字符串string1中查找本字符串出现的位置;
searchlength:long类型,可选项,指定要进行搜索的字符串的长度,默认值为整个字符串。
返回值:String。函数执行成功时返回string2在string1最后一次出现的开始位置(查找范围由参数searchlength控制)。如果string1中根本不包含string2,或者参数searchlength的值为0,那么函数返回0,如果任何参数的值为NULL,LastPos()函数返回NULL。
用 法:LastPos()函数在进行字符串查找时,区分大小写。
示 例:1、下面的代码返回7。
LastPos(“SUNNY BOY” , “BO”)
2、下面的代码返回4。
LastPos(“SUNNY BOY” , “N”)
3、下面的代码返回0。
LastPos(“SUNNY BOY” , “n”) //源字符串中不包含小写字母”n”。
4、下面的代码返回0。
LastPos(“SUNNY BOY” , “n” , 5) //源字符串前5 个中不包含”BO”。
3、Left()
功 能:得到字符串左部指定个数的字符。
语 法:Left ( string, n )
参 数:string:string类型,指定要提取子串的字符串;
n:long类型,指定子串长度。
返回值:String。函数执行成功时返回string字符串左边n个字符,发生错误时返回空字符串("")。如果任何参数的值为NULL,Left()函数返回NULL。如果n的值大于string字符串的长度,那么Left()函数返回整个string字符串,但并不增加其它字符。
示 例:1、下面的代码返回”ABCD”。
Left(“ABCDEFGH” , 4)
2、下面的代码返回“ABCEEFGH”。
Left(“ABCDEFGH” , 40)
4、LeftTrim()
功 能:返回指定字符串删除了左部空格后的字符串。
语 法:LeftTrim ( string )
参 数:string:string类型,指定要删除左部空格的字符串。
返回值:String。函数执行成功时返回删除了string字符串左部空格的字符串,发生错误时返回空字符串。如果任何参数的值为NULL,LeftTrim()函数返回NULL。
示 例:下面的代码返回”ABCD”。
LeftTrim(“ ABCDEFGH”)
5、Len()
功 能:得到字符串的长度。
语 法:Len (string)
参 数:string:string类型变量。
返回值:Long。函数执行成功时返回字符串的长度,发生错误时返回-1。如果任何参数的值为NULL,则Len()函数返回NULL。
示 例:1、下面的代码返回0。
Len(“”)
2、下面的代码返回5。
Len(“ABCDE”)
6、LenW()
功 能:返回到字符串字符的个数,主要用于DBCS环境。这里的字符可以是单字节字符、双字节字符或单/双字节混合编码的字符。如果参数为BOLB类型的变量,则函数返回以双字节计算的长度。
语 法:LenW (string or blob)
参 数:string or blob:string类型或者blob类型变量。
返回值:Long。函数执行成功时返回字符个数或以双字节计算的BLOB变量的长度,发生错误时返回-1。如果参数的string or blob值为NULL,则LenW()函数返回NULL。
用 法:LenW()函数计算字符串中字符的个数。在DBCS环境中,这个个数通常与字节数并不相同。字符串末尾、用于结束字符串的NULL值不包含在字符计算之内。
如果声明BLOB类型的变量时指定了它的长度,那么LenW()以双字节单位报告该变量的长度;如果声明BLOB类型的变量时没有指定它的长度,那么应用程序在第一次给这个变量赋值时,PB以该值的长度作为这个变量的长度,LenW()以双字节单位报告该变量的长度。如果这个变量没有初始化,那么LenW()函数返回0。
7、Lower()
功 能:将字符串中的大写字母转换为小写字母。
语 法:Lower ( string )
参 数:string:要将其中的大写字母转换为小写字母的字符串。
返回值:String。函数执行成功时返回将大写字母转换为小写字母后的字符串,发生错误时返回空字符串。如果string参数的值为NULL,Lower()函数返回NULL。
示 例:下面的代码返回”abcdefg”。
Lower(“ABCdefg”)
8、Match()
功 能:确定字符串中是否包含指定模式的字符。
语 法:Match ( string, textpattern )
参 数:string:string类型,指定要检查是否匹配指定模式的字符串;
textpattern:string类型,指定文本匹配模式。
返回值:Boolean:如果字符串string与模式textpattern相匹配,则函数返回TRUE,否则返回FALSE。如果指定的匹配模式无效或上述两个参数中的任何一个未曾赋值,那么Match()函数返回FALSE。如果任何参数的值为NULL,Match()函数返回NULL。
用 法:textpattern参数的写法与正则表达式十分相似,它由元字符和普通字符组成。每个元字符都有不同的匹配含义,普通字符则与其自身相匹配。下面是匹配模式中使用的元字符及其意义:
^ -- 指示字符串的开始,例如,^asd表示以asd开头的字符串,字符串asdfgh与模式^asd匹配,而字符串basdfg与模式^asd不匹配。
$ -- 指示字符串的结束,例如,red$表示所有以red结束的字符串均与该模式匹配,而redo与模式red$不匹配。
. -- 匹配任意单个字符,例如,^&&$匹配任何六个字符组成的字符串。
[] -- 匹配括号中列出的字符,例如,^[ABC]$匹配由一个字符组成的字符串,其值只能是A或B或C。
- -- 与方括号一起,指定匹配字符的范围,例如,^[A-Z]$只匹配那些由一个大写字母组成的字符串。方括号里还可以使用^字符,表示匹配不在指定范围内的任何字符,例如,[^0-9]匹配除数字外的任何字符。
*,+,? -- 这些符号跟在一个字符后面表示该字符可以出现的次数。星号(*)表示可以出现0次或任意次;加号(+)表示可以出现多次,但至少出现一次;问号(?)表示出现0次或一次。例如,A*匹配0个或多个A(没有A、A、AA、AAA、AAAA、**);A+匹配1个或多个A(A、AA、AAA、AAAA、**);A?匹配空串或1个A。
\ -- 斜杠(\)是转义字符,它去掉特殊字符的特殊含义,比如,模式\匹配字符\,模式\\匹配字 符\。
示 例:下面是匹配模式的一些例子。
| 模 式 | 意 义 | 相匹配的字符串例子 |
|---|---|---|
| AB | 匹配包含AB的任何字符串 | AB、ABC、EABC、graphAB_one |
| B* | 匹配包含0个或1个B的任何字符串 | ACD、B、BB、BBB |
| AB*C | 匹配包含AC、ABC、ABBC、ABBBC等的任何字符串 | AC、EABCD、wsABBCd、AcABBBBBBCfg |
| ^AB | 匹配任何以AB开头的字符串 | AB、Abcdf、AbaBab |
| ^[^abc] | 匹配以a、b、c之外任何开头的字符串 | fabc、echo、Dog、>face |
| ^[0-9]+$ | 匹配由数字组成的任何字符串 | 122、4567、0、3、7 |
| ^[0-9][0-9][0-9]$ | 匹配由三个数字组成的任何字符串 | 123、456、789、034 |
| ^[+-]?[0-9]+[.]?[0-9]*$ | 匹配以0个或1个加号或减号开始、后跟一个或多个数字字符、再跟0个或1个小数点、再跟0个或多个数字组成的字符串 | +18.909、-18.909、18.909、+11238909 |
| 计算机 | 匹配包含”计算机”的任何字符串 | 计算机、独孤求败的计算机 |
| ^计算机 | 匹配以”计算机”开头的任何字符串 | 计算机的屏幕、计算机的键盘 |
| 计算机$ | 匹配以”计算机”结束的任何字符串 | 独孤求败的计算机、IBM计算机 |
9、Mid()
功 能:取字符串的子串。
语 法:Mid ( string, start {, length } )
参 数:string:string类型,指定要从中提取子串的字符串;
start:long类型,指定子串第一个字符在string字符串中的位置,第一个位置为1;
length:long类型,可选项,指定子串的长度。
返回值:String。函数执行成功时返回string字符串中从start位置开始、长度为length的子串。如果start参数的值大于string中字符个数,那么Mid()函数返回空字符串。如果省略了length参数或length参数的值大于从start开始、string字符串中余下字符的长度,那么Mid()函数返回所有余下的字符。如果任何参数的值为NULL,Mid()函数返回NULL。
示 例:1、下面的代码返回”RUTH”。
Mid(“BABE RUTH” , 5 , 5)
2、下面的代码返回空字符串(“”)。
Mid(“BABE RUTH” , 40 , 5)
2、下面的代码返回字符串“BE RUTH”。
Mid(“BABE RUTH” , 3)
10、Pos()
功 能:在一个字符串中查找所包含的另一个字符串的起始位置。
语 法:Pos ( string1, string2 {, start } )
参 数:string1:string类型,指定要从中查找子串string2的字符串;
string2:string类型,指定要在string1中查找的字符串;
start:long类型,可选项,指定从string1的第几个字符开始查找。缺省值为1。
返回值:Long。函数执行成功时返回在start位置后string2在string1中第一次出现的起始位置。如果在string1中按指定要求未找到string2、或start的值超过了string1的长度,那么Pos()函数返回0。如果任何参数的值为NULL,Pos()函数返回NULL。
用 法:Pos()函数在字符串查找时区分大小写,因此,"aa"不匹配"AA"。
示 例:1、下面的代码返回6。
Pos(“BABE RUTH” , “RU”)
2、下面的代码返回0。
Pos(“BABE RUTH” , “be”)
3、下面的代码返回0。
Pos(“BABE RUTH” , “BE” , 5)
11、Replace()
功 能:将一个字符串中指定个数的字符串替换为另一个字符串。
语 法:Replace ( string1, start, n, string2 )
参 数:string1:string类型,指定要使用string2替换其中一部分内容的字符串;
start:long类型,指定要从哪个字符位置开始替换字符串,字符串中第一个字符的位置为1;
n:long类型,指定要替换多少个字符;
string2:string类型,指定用哪个字符串替换string1的部分字符。
返回值:String。函数执行成功时返回替换后的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Replace()函数返回NULL。
用 法:如果start参数指定的位置超过了string1的长度,那么Replace()函数把将string2拼接到string1的后面形成的字符串返回。如果n的值为0,那么Replace()函数把string2插入到string1指定位置后形成的字符串返回。
示 例:1、下面的代码把Name变量的值”春眠不倔小”替换为”春眠不觉晓”。
String name
Name = ”春眠不倔小”
Name = Replace(Name , 7 , 4 , “觉晓”)
2、下面的代码返回ABZZZZEF。
Replace(“ABCDEF” , 3 , 2 , “ZZZZ”)
Pos(“BABE RUTH” , “be”)
3、下面的代码返回ABZZZZ。
Replace(“ABCDEF” , 3 , 50 , “ZZZZ”)
4、下面的代码返回ABCDEFZZZZ。
Replace(“ABCDEF” , 50 , 3 , “ZZZZ”)
12、Right()
功 能:从字符串右端取指定个数字符。
语 法:Right ( string, n )
参 数:string:string类型,指定要提取子串的字符串;
n:long类型,指定子串长度。
返回值:String。函数执行成功时返回string字符串右边n个字符,发生错误时返回空字符串("")。如果任何参数的值为NULL,Right()函数返回NULL。
如果n的值大于string字符串的长度,那么Right()函数返回整个string字符串,但并不增加其它字符。
示 例:下面的代码返回”RUTH”。
Right(“BABE RUTH” , 4)
13、RightTrim()
功 能:删除字符串尾部空格。
语 法:RightTrim ( string )
参 数:string:string类型,指定要删除右部空格的字符串。
返回值:String。函数执行成功时返回删除了string字符串右部空格的字符串,发生错误时返回空字符串。如果任何参数的值为NULL,RightTrim()函数返回NULL。
示 例:下面的代码返回”ABCD”。
RightTrim(“ABCD ”)
14、Space()
功 能:生成一个由空格组成的指定字符个数的字符串。
语 法:Space ( n )
参 数:n:long类型,指定要填充的空格个数,也就是填充后返回的字符串的长度。
返回值:String。函数执行成功时返回由n个空格组成的字符串,发生错误时返回空字符串。如果参数n的值为NULL,Space()函数返回NULL。
示 例:下面的代码将由6个空格组成字符串赋给Name变量。
String name
Name = Space(6)
15、Trim()
功 能:删除字符串首部和尾部的空格。
语 法:Trim ( string )
参 数:string:string类型,指定要删除首部和尾部空格的字符串。
返回值:String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。
示 例:下面的代码返回”ABCD”。
Trim(“ ABCD ”)
16、Upper()
功 能:将字符串中的小写字母转换为大写字母。
语 法:Upper( string )
参 数:string:要将其中的小写字母转换为大写字母的字符串。
返回值:String。函数执行成功时返回将小写字母转换为大写字母后的字符串,发生错误时返回空字符串。如果string参数的值为NULL,Upper()函数返回NULL。
示 例:下面的代码返回”ABCD”。
Upper(“aBcD”)
17、WordCap()
功 能:将参数中每一个单词的首字母大写、其他字母小写,并以此作为结果返回。
语 法:WordCap ( text )
参 数:text:string类型,要进行单词中首字母大写、其他字母小写的字符串。
返回值:String。函数执行成功时返回将参数中每一个单词的首字母大写、其他字母小写所构成的字符串;发生错误时返回NULL。
示 例:1、下面的代码将变量ls_name的值赋为:”Joe Macdonald”。
String ls_name
ls_name = WordCap(“joe MaCdonald”)
2、下面的代码返回”Beijing,Haidian”。
WordCap(“beijing,HaiDian”)