对给定字符串进行分割,需要指定分隔符,分割后的内容就是不匹配分隔符的部分。使用正则表达式进行分割,是将匹配正则表达式的字符串作为分隔符来使用,将不匹配的部分以数组形式返回。
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”。将它们作为分隔符,剩下的部分以元胞数组的形式返回。