Excel-VBA中如何使用split来分割内部含有不定空格的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel-VBA中如何使用split来分割内部含有不定空格的字符串相关的知识,希望对你有一定的参考价值。

就是让split适用于1个、2个、3个、4个空格
例如一组字符串是“xx yy zz aa"

1、首先打开office excel软件,接着打开VBA编辑界面。

2、然后在单元格区域当中输入一些内容。

3、接着在VBA编辑器中插入模块。

4、在模块当中输入如下代码进行分割取线,然后运行。

5、最后在单元格B2中输入公式“=Division($A1,"/",COLUMN(A:A))”,然后右拉至D2,公式结果如图所示。

参考技术A split语法为:split(要分割的内容,分隔符)
根据题意,举例如下:
1、Split(内容," "),即可分割内部还有不定空格的内容
2、分割后为一维数组
3、空个数量不定,可能或产生空元素,需要循环,重新去除非空元素即可。
参考技术B

可以用正则把多个空格变成一个后,在split

dim reg,str as string
str="a   b c   d"
set reg=createobject("vbscript.regexp")
reg.pattern="\\s+"
msgbox reg.replace(str," ")
'arr=split(reg.replace(str," ")," ")

追问

复制了你的代码,只能将a和b之间的多个空格变为1个,b和c、c和d之间的空格还是那么多

追答dim reg,str as string
str="a   b c   d"
set reg=createobject("vbscript.regexp")
reg.pattern="\\s+"
reg.global=true'加上全局匹配应该就可以了。
msgbox reg.replace(str," ")
'arr=split(reg.replace(str," ")," ")

本回答被提问者和网友采纳
参考技术C System.out.println("asf1dskf 2 df(3)df".replaceAll("[^\\d]*(\\d)[^\\d]*", "$1\n")); 参考技术D 先用多次的replace把双空格转换成单空格。

c++分割字符串split方法实现

c++标准库中没有实现split函数,但是split字符串又是特别特别常见的常规操作。网络上能找到很多split的实现方式,下面记录一下本人认为比较优雅,可读性也比较好的两种实现方式。

1.使用find方法

如果是比较老的c++版本,可以使用find方法来实现split功能。

void run() 
    string s = "aa bb cc dd";
    const string delim = " ";
    int nPos = 0;
    vector<string> vec;
    nPos = s.find(delim.c_str());
    while(-1 != nPos) 
        string temp = s.substr(0, nPos);
        vec.push_back(temp);
        s = s.substr(nPos+1);
        nPos = s.find(delim.c_str());
    
    vec.push_back(s);
    
    for(string ele: vec) 
        cout<<ele<<" ";
    

上面代码的逻辑:
通过find找到分隔符的位置,然后将分割后的元素挨个存入vector中,得到的就是所需要的结果。

2.regex正则匹配

在c++11中引入了regex模块,通过regex模块我们也可以很方便实现split功能。

void run5() 
    string s = "aa  bb cc   dd";
    regex pattern("\\\\s+");
    vector<string> vec(sregex_token_iterator(s.begin(), s.end(), pattern, -1), sregex_token_iterator());
    for(auto inner: vec) 
        cout<<inner<<endl;
    

上面的代码,也可以顺利实现split功能。而且相比find方法,regex的表达方式更为灵活多变。

以上是关于Excel-VBA中如何使用split来分割内部含有不定空格的字符串的主要内容,如果未能解决你的问题,请参考以下文章

linux split

jquery中如何以逗号分割字符串

linux文件拆分命令

Excel-VBA操作文件的四大方法

Excel-VBA操作文件四大方法之一

字符串分割split()