主要内容

分裂

在分隔符处分割字符串

描述

例子

newStr=分裂(strstr,并将结果作为输出数组返回newStr.输入数组str可以是字符串数组、字符向量或字符向量的单元格数组。如果str是字符串数组,那么也是吗newStr.否则,newStr是字符向量的单元格数组。newStr不包括来自str

如果str是字符向量的字符串数组或单元格数组,且具有多个元素,则每个元素必须可划分为相同数量的子字符串。

  • 如果str那么,字符串是标量还是字符向量newStr是一个N——- - - - - -1字符向量的字符串数组或单元格数组,其中N是子字符串的数量。

  • 如果str是一个——- - - - - -1然后是字符串数组或单元格数组newStr是一个——- - - - - -N数组中。

  • 如果str是一个1——- - - - - -然后是字符串数组或单元格数组newStr是一个1——- - - - - -——- - - - - -N数组中。

对于任意大小的字符串数组或单元格数组,分裂指引方向的N第一个尾随维度的子字符串,其大小为1

的每个元素的子字符串数量不相同str,然后调用分裂在一个循环来划分的元素str一次一个。

例子

newStr=分裂(str分隔符除的每个元素str指定的分隔符分隔符.输出newStr不包括分隔符。

例子

newStr=分裂(str分隔符昏暗的除的每个元素str转换为向量,其方向为昏暗的

例子

newStr匹配) =分裂(___另外返回一个数组,匹配,其中包含所有出现的定界符分裂函数将str.您可以将此语法与前面语法的任何输入参数一起使用。

例子

全部折叠

在字符串数组中以空白字符分割名称。然后重新排列字符串并连接它们,使姓氏在姓氏之前。

创建一个包含名称的3 × 1字符串数组。从R2017a开始,您可以使用双引号创建字符串。

名称= [“玛丽管家”“圣地亚哥马尔克斯”“黛安娜李”
名称=3 x1字符串《玛丽·巴特勒》《圣地亚哥·马尔克斯》《戴安娜·李》

如果你正在使用R2016b,使用字符串函数而不是双引号。

分裂的名字在空白字符处,使它成为一个3乘2的字符串数组。

名称=分裂(名称)
名称=3 x2字符串“玛丽”“巴特勒”“圣地亚哥”“马尔克斯”“戴安娜”“李”

切换列的名字这样姓氏就在第一列。在每个姓后面加一个逗号。

name = [name (:,2) Names (:,1)];Names (:,1) = Names (:,1) +”、“
名称=3 x2字符串"巴特勒" "玛丽" "马克斯" "圣地亚哥" "李" "戴安娜"

把姓和名连起来。的加入函数在其连接的字符串之间放置空格字符。加入后,的名字是一个3乘1的字符串数组。

名称=加入(名称)
名称=3 x1字符串"巴特勒,玛丽" "马尔克斯,圣地亚哥" "李,戴安娜"

创建包含文件夹路径的字符串。从R2017a开始,您可以使用双引号创建字符串。

myPath =“/用户/ jdoe /我的文档/例子”
myPath = "/Users/jdoe/My Documents/Examples"

把这条路分开/的性格。分裂返回myFolders作为一个5乘1的字符串数组。第一个字符串是""因为myPath/的性格。

myFolders =分裂(myPath,“/”
myFolders =5 x1字符串"" "用户"" jdoe" "我的文档""示例"

加入myFolders进入了一条新的道路作为分隔符。添加C:作为道路的起点。

myNewPath =加入(myFolders,“\”);myNewPath =“C:”+ myNewPath
myNewPath = "C:\Users\jdoe\My Documents\Examples"

自从R2020b

将文本作为分隔符处理,从字符串中获取数字。使用模式匹配文本。然后把这些数字加起来。

首先,创建一个包含数字的字符串。

str =“10个苹果3个香蕉5个橙子”
STR = "10个苹果3个香蕉5个橙子"

然后,创建一个匹配空格字符或字母的模式。

帕特=”“| lettersPattern
帕特=模式匹配:“”|字母模式

使用以下命令分割字符串帕特作为分隔符。空字符串表示空格和无其他字符的字母序列之间的分隔。例如,在“10个苹果”,在分隔符前有一个分隔符”“,然后在”““苹果”.因为分隔符之间没有任何东西”““苹果”,分裂函数返回一个空字符串,表示它们之间没有任何东西。

N =分裂(str,帕特)
N =11 x1字符串10" "" "" "3" "" "" "" "" "5" "" ""

丢弃空字符串,保留表示数字的子字符串。

N = N(strlength(N) > 0))
N =3 x1字符串“10”“3”“5”

最后,将N对一个数字数组求和。

N = str2double (N);总和(N)
ans = 18

有关创建模式对象的函数列表,请参见模式

创建一个字符串。从R2017a开始,您可以使用双引号创建字符串。

str =“一匹马!一匹马!用我的王国换一匹马!”
str = "一匹马!一匹马!用我的王国换一匹马!”

分裂str在感叹号和空格字符处。newStr是一个10乘1的字符串数组。最后一个字符串是空字符串,"",因为最后一个字符str是一个分隔符。

newStr =分裂(str, (”““啊!”])
newStr =12 x1字符串“A”“马”“”“”“马”“”“我”“王国”“”“”“马”“

创建一个字符串数组,其中每个元素包含有关病人的以逗号分隔的数据。从R2017a开始,您可以使用双引号创建字符串。

病人= [“姓,年龄、性别、身高、体重””亚当斯,47岁,F, 64123””琼斯68175……”“王,M, 66180””38岁的史密斯,F, 63118”
病人=5 x1字符串“姓,年龄,性别,身高,体重”“亚当斯,47岁,F, 64123”“琼斯,68175”“金,M, 66180”“史密斯,38岁,F,63,118”

分割字符串数组。一对逗号之间没有任何内容,表示数据丢失。当分裂在重复分隔符上进行除,它将返回空字符串作为输出数组的相应元素。

病人=分裂(病人,","
病人=5 x5字符串“姓”“时代”“性别”的“高度”“重量”“亚当斯”“47”“F”“64”“123”琼斯”“”“”““68”“175”“王”““M”“66”“180”“史密斯”“38”“F”“63”“118”

创建一个包含名称的3 × 1字符串数组。从R2017a开始,您可以使用双引号创建字符串。

名称= [“玛丽管家”“圣地亚哥马尔克斯”“黛安娜李”
名称=3 x1字符串《玛丽·巴特勒》《圣地亚哥·马尔克斯》《戴安娜·李》

在空白字符处分割数组。默认情况下,分裂将输出子字符串沿第一个尾随维度(大小为1)方向定位。因为的名字是一个3乘1的字符串数组,分裂将子字符串沿着的第二个维度splitNames,也就是列。

splitNames =分裂(名称)
splitNames =3 x2字符串“玛丽”“巴特勒”“圣地亚哥”“马尔克斯”“戴安娜”“李”

若要沿行或第一个维度定位子字符串,请在指定分隔符后指定维度。splitNames现在是一个2乘3的字符串数组,第一行中的第一个名字,第二行中的最后一个名字。

splitNames =分裂(名称,”“, 1)
splitNames =2 x3字符串“玛丽”“圣地亚哥”“戴安娜”“巴特勒”“马尔克斯”“李”

创建一个字符串。从R2017a开始,您可以使用双引号创建字符串。

str =培根、生菜和西红柿
"培根、生菜和番茄"

分裂str分隔符。返回字符串数组中的分割结果,以及第二个字符串数组中的分隔符。当连续分隔符之间没有文本时,分裂返回一个空字符串。

[newStr,匹配]=分裂(str, (”和“","”“])
newStr =7 x1字符串培根" "" "生菜" "" "" "" "西红柿
匹配=6 x1字符串," " " "," " " "和" " "

加入newStr匹配回到一起加入函数。

originalStr =加入(newStr匹配)
originalStr = "培根,生菜和西红柿"

输入参数

全部折叠

输入文本,指定为字符串数组、字符向量或字符向量的单元格数组。

分隔子字符串,指定为以下方式之一:

  • 字符串数组

  • 特征向量

  • 字符向量的单元格数组

  • 模式数组(因为R2020b)

中的子字符串分隔符在输出中不出现newStr

在字符串数组、字符向量单元格数组或模式数组中。的分裂函数将str关于分隔符.中出现分隔符的顺序分隔符没有关系,除非多个分隔符开始匹配在同一字符str.在这种情况下分裂中的第一个匹配分隔符分隔符

例子:split (str ,{' ',',','--'})分裂str在空格、逗号和成对连续的破折号上。

用于分割字符串的维度,指定为正整数。如果昏暗的,则默认为最后一个大小不等于1

输出参数

全部折叠

从原始数组中分离出来的子字符串,作为字符向量的字符串数组或单元格数组返回。如果输入数组str是字符串数组,那么也是吗newStr.否则,newStr是字符向量的单元格数组。

已标识的分隔符,作为字符向量的字符串数组或单元格数组返回。如果输入数组str是字符串数组,那么也是吗匹配.否则,匹配是字符向量的单元格数组。

匹配总是比输出少一个元素newStr包含。

扩展功能

介绍了R2016b