分割

对给定字符串进行分割,需要指定分隔符,分割后的内容就是不匹配分隔符的部分。使用正则表达式进行分割,是将匹配正则表达式的字符串作为分隔符来使用,将不匹配的部分以数组形式返回。

MATLAB中用正则表达式实现文本分割,在使用regexp函数时设置outkey参数的值为“split”。

下面给定字符串,将字符串中的“a”作为分隔符进行分割。

code.matlab
>> a='aBC&123dEf&456abc&789abC';
>> splitStr=regexp(a,'a','split')
splitStr =
  1×4 cell 数组
    {0×0 char}    {'BC&123dEf&456'}    {'bc&789'}    {'bC'}

结果以元胞数组的形式返回。

稍微复杂点的情况,将给定字符串中的数字作为分隔符进行分割。

code.matlab
>> splitStr=regexp(a,'\d+','split')
splitStr =
  1×4 cell 数组
    {'aBC&'}    {'dEf&'}    {'abc&'}    {'abC'}

正则表达式“\d+”表示1个以上的数字,匹配给定字符串中的“123”、“456”和“789”。将它们作为分隔符,剩下的部分以元胞数组的形式返回。