字符串

阅读(4197) 标签: 字符串,

本章主要展示有关字符串的代码参考,比如产生定长字符串、查找和替换子串、取出字符串的部分、字符串的拼接、大小写识别和转换、去除字符串双边多余的空白、匹配模式串、匹配带有*的模式串、取得字符编码和用编码返回字符、将字符串拆成序列、将序列拼成字符串、从字符串删除不需要的字符、判断字符串是否是字母或数字构成、计算存储在字符串中的表达式、计算字符串表达式时使用参数、可随着编辑过程变迁的表达式字符串、判定是否是字符串类型、字符串MD5签名、生成指定长度的随机字串、正则表达式匹配字符串、解析字符串为本身类型等

产生定长字符串

 

A

 

1

=fill(" ",10)

"  "

2

=len(A1)

10

3

=fill("ab",10)

abababababababababab

 

查找和替换子串

 

A

 

1

=pos("abcdef","def")

"def" "abcdef"中的位置

2

=pos("abcdefdef","def",5)

从第5个开始找

3

=replace("abca","a","ABC")

"ABC"替换"abca"中的a

4

=replace("abc'abc'","a","ABC")

引号内也替换

5

=replace@q("abc'abc'","a","ABC")

引号内不替换

 

取出字符串的部分

 

A

 

1

=mid("abcde",2,1)

取出第2个字符

2

=mid("abcde",3,2)

从第3个位置起取2个字符

3

=mid("abcde",2)

从第2 位置起取到结束

4

=left("abcdefg",3)

左边3个字符

5

=right("abcde",2)

右边2个字符

 

字符串拼接

 

A

 

1

="ab"+"cd"

abcd

2

="ab"/"cd"

abcd

3

="3"+2

5,串数混合时按数计算

4

="ab"+1

1,不能转成数的串作为0

 

大小写识别和转换

 

A

 

1

=upper("abcdef")

"ABCDEF"

2

=upper("ABCdef")

"ABCDEF"

3

=lower("abcDEF")

"abcdef"

4

=isupper("ABC") 

true

5

=islower("ABC") 

false

6

=islower("aBc")

false

7

=isupper("Bc")

false

 

去除字符串双边多余的空白

 

A

 

1

=trim(" abc ")

去除两边空白

2

=trim@l(" abc ")

去除左边空白

3

=trim@r(" abc ")

去除右边空白

 

匹配模式串

 

A

 

1

=like("abc123","abc1?3")

"?"匹配单个字符

2

=like("abcefg","abc*")

"*"匹配0个或多个字符

 

匹配带有 * 的模式串

 

A

 

1

=like("ab*123", "ab\*1?3")

用转义符\将匹配字符*本身

2

=like("a*bcefg","a\*bc*")

true

 

取得字符编码和用编码返回字符

 

A

 

1

=asc("a")

字符“a”的编码

2

=char(68)

编码为“68”的字符

3

=asc("USA")

字符”U”的编码

 

将字符串拆成序列

 

A

 

1

="12345678"

 

2

=len(A1)

 

3

=A1.split()

拆分成字符序列

4

="a,[b,c],d"

 

5

=A4.split@cp()

返回由a[b,c]d三个成员组成的序列,其中成员[b,c]解释为序列

6

=A4.split@c()

返回由a[b,c] d三个成员组成的序列,其中成员[b,c]解释为字符串而不是序列

7

=A4.split@cb()

返回由a[bc]d四个成员组成的序列,不考虑括号/引号匹配

8

="a;[b;c];d".split@p(";")

”;”拆分

9

="a  b  c"

 

10

=A1.split@t()

返回由abc组成的序列,拆分后做一下两边trim

11

="a1b2c".split@r("(\\d)")

返回由abc组成的序列,分隔符是正则表达式

 

将序列拼成字符串

 

A

 

1

=[1,"abc,def",[2,4],"{7,8}"]

 

2

=A1.concat@cq()

用逗号作为分隔符拼接字串,串将被加上引号

3

=A1.concat()

串拼入时不加引号,不用分隔符

4

=A1.concat("&")

”&”作为分隔符

 

从字符串删除不需要的字符

 

A

 

1

abcda123efag

 

2

=replace(A1,"123","")

删除123

3

=replace(A1,"a","")

删除 "a"

 

判断字符串是否是字母或数字构成

 

A

 

1

2345$#dfAgsdf23*

 

2

=len(A1)

16

3

=A1.split()

分割成字符序列

4

=A3.count(!isdigit(~) && !isalpha(~))==0

是否字母数字串

 

计算存储在字符串中的表达式

 

A

 

1

=eval("1+5")

计算1 + 5

2

=eval($[A1+2])

计算A1 + 2

 

计算字符串表达式时使用参数

 

A

 

1

=eval("?+5",3)

相当于计算"3 + 5"

2

=eval("(?1+1)/?2",3,4)

相当于计算"(3 + 1)/4"

 

可随着编辑过程变迁的表达式字符串

 

A

 

1

=$[B1+4]

$[]方式写字符串将在编辑过程中变迁

判断是否是字符串类型

 

A

 

1

=ifstring("abc")

true

 

字符串的 MD5 签名

 

A

 

1

=md5("abced")

EBB080AFAAC3A990AD3F1D0F21742FAC

 

生成指定长度的随机字串

 

A

 

1

=rands("abc",5)

baaca

 

正则表达式匹配字符串

 

A

 

1

4,233,a,test

 

2

=A1.regex("(\\d),([0-9]*),([a-z]),([a-z]*)")

返回4233atest序列

3

4,233,A,tEst

 

4

=A3.regex@c("(\\d),([0-9]*),([a-z]),([a-z]*)")

返回4233AtEst序列,不区分大小写

5

小明,中国

 

6

=A5.regex@u("(\\u5c0f\\u660e),(\\u4e2d\\u56fd)")

返回 小明、中国 序列,匹配汉字

 

母串中查找子串

 

A

 

1

=substr("abcdef","cd")

ef,返回子串后的字符串

2

=substr@l("abcdef","cd")

ab,返回子串前的字符串

3

=substr@q("ab\'cdef\'","cd")

null,引号里的串不参与查找

 

拆出字符串中的单词或数字

 

A

 

1

4,23,a,test?my_file 57b

 

2

=A1.words()

atestmyfileb,拆出字符串中的英语单词

3

=A1.words@d()

42357,拆出字符串中的数字

4

=A1.words@a()

423atestmyfileb57,拆出字符串中的单词和数字

5

=A1.words@i()

atestmyfileb57,将连续的英文和数字看成一个单词

6

=A1.words@w()

4、℃、,23,a,test?my_file b57,拆出所有字符

 

解析字符串为本身类型

 

A

 

1

="10:20:30"

 

2

=parse(A1)

10:20:30时间类型

3

="10"

 

4

=parse@n(A3)

10,数字开头只解析数字