vba split 分割符在所要分割的字符串中不存在时会返回啥值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba split 分割符在所要分割的字符串中不存在时会返回啥值?相关的知识,希望对你有一定的参考价值。

试了一下,没有分隔符,会返回原来的字符串:
a = "abc|de|fgh"
b = Split(a, "|")
c = Split(a, ",")
b会把a拆成三个:
b(0)="abc",b(1)="de", b(2)="fgh"
c的值会等于a:
c(0) = "abc|de|fgh"
参考技术A split语法为:split(要分割的内容,分隔符)

Python字符串分割方法总结

Python中字符串分割的常用方法是直接调用字符串的str.split方法,但是其只能指定一种分隔符,如果想指定多个分隔符拆分字符串需要用到re.split方法(正则表达式的split方法)。

str.split

字符串的split方法函数原型如下,其中sep为指定的分隔符,maxsplit为最大分割次数:

1
str.split(sep=None, maxsplit=-1)

 

默认情况下,不指定分隔符时则以空白字符(空格,回车,制表符等)作为分隔符拆分字符串:

1
2
3
4
>>> s = ‘A B\tC\nD‘
>>> s.split()
[‘A‘, ‘B‘, ‘C‘, ‘D‘]
>>>

 

在结果列表中,不会包含空字符串:

1
2
3
4
>>> s = ‘ A B\tC\nD\n\n‘
>>> s.split()
[‘A‘, ‘B‘, ‘C‘, ‘D‘]
>>>

 

指定分隔符:

1
2
3
4
5
6
7
>>> s = ‘www.google.com‘
>>> s.split(‘.‘)
[‘www‘, ‘google‘, ‘com‘]
>>> s = ‘AA||BB||CC||DD‘
>>> s.split(‘||‘)
[‘AA‘, ‘BB‘, ‘CC‘, ‘DD‘]
>>>

 

指定最大分割次数:

1
2
3
4
5
6
7
>>> s = ‘www.google.com‘
>>> s.split(‘.‘, 1)
[‘www‘, ‘google.com‘]
>>> s = ‘AA||BB||CC||DD‘
>>> s.split(‘||‘, 2)
[‘AA‘, ‘BB‘, ‘CC||DD‘]
>>>

 

由此可见,当指定最大分割次数maxsplit时,结果列表长度为maxsplit+1
但是,字符串的split方法只能指定一个分隔符,如下:

1
s = ‘AAAA,BBBB:CCCC;DDDD‘

 

如果想指定逗号、冒号、分号都做为分隔符,字符串的split方法是做不到的,此时要用正则表达式中的split方法。

re.split

正则表达式的split方法原型如下,其中pattern为指定的分隔正则表达式,string为要分割的字符串,maxsplit为最大分割次数,flags为正则表达式用到的通用标志:

1
re.split(pattern, string, maxsplit=0, flags=0)

 

参考示例:

1
2
3
4
5
>>> import re
>>> s = ‘AAAA,BBBB:CCCC;DDDD‘
>>> re.split(r‘[,:;]‘, s)
[‘AAAA‘, ‘BBBB‘, ‘CCCC‘, ‘DDDD‘]
>>>

 

如果在正则表达式里使用了捕获组也就是括号,则结果列表中也会包含捕获的内容:

1
2
3
4
5
>>> import re
>>> s = ‘AAAA,BBBB:CCCC;DDDD‘
>>> re.split(r‘([,:;])‘, s)
[‘AAAA‘, ‘,‘, ‘BBBB‘, ‘:‘, ‘CCCC‘, ‘;‘, ‘DDDD‘]
>>>

 

如果不想在结果中看到分隔符,但仍然想用括号对正则表达式模式进行分组,可以使用非捕获组,以(?:...)的形式指定,示例如下:

1
2
3
4
5
>>> import re
>>> s = ‘AAAA,BBBB:CCCC;DDDD‘
>>> re.split(r‘(?:[,:;])‘, s)
[‘AAAA‘, ‘BBBB‘, ‘CCCC‘, ‘DDDD‘]
>>>

 

指定最大分割次数:

1
2
3
4
5
6
7
>>> import re
>>> s = ‘AAAA,BBBB:CCCC;DDDD‘
>>> re.split(r‘[,:;]‘, s, 1)
[‘AAAA‘, ‘BBBB:CCCC;DDDD‘]
>>> re.split(r‘[,:;]‘, s, 2)
[‘AAAA‘, ‘BBBB‘, ‘CCCC;DDDD‘]
>>>

 

由此可见,当指定最大分割次数maxsplit时,结果列表长度为maxsplit+1
指定正则表达式中的通用标志flags:

 

1
2
3
4
>>> import re
>>> re.split(‘[a-f]+‘, ‘0a3B9‘, flags=re.IGNORECASE)
[‘0‘, ‘3‘, ‘9‘]
>>>

原文链接:http://www.revotu.com/python-split-string-methods.html

 




以上是关于vba split 分割符在所要分割的字符串中不存在时会返回啥值?的主要内容,如果未能解决你的问题,请参考以下文章

split的函数的用法?

Android--split()分割字符串特殊用法

字符串分割split()

split使用多个分隔符分割字符串

String.split()分割字符串方法

模拟java的split函数,分割字符串,类似于java的split方法