在分隔符处拆分字符串
newStr = split(str)
newStr = split(str,delimiter)
newStr = split(str,delimiter,dim)
[newStr,match] = split( ___ )
示例
newStr = split( str ) 在空白字符处拆分 str 并以输出数组 newStr 的形式返回结果。输入数组 str 可以是字符串数组、字符向量或字符向量元胞数组。如果 str 是一个字符串数组,则 newStr 也是一个字符串数组。否则, newStr 为字符向量元胞数组。 newStr 不包括 str 中的空白字符。
newStr = split( str )
newStr
str
如果 str 是字符串数组或字符向量元胞数组,并且有多个元素,则每个元素必须可分成相同数量的子字符串。
如果 str 是一个字符串标量或字符向量,则 newStr 是一个 N × 1 字符串数组或字符向量元胞数组,其中 N 是子字符串的数量。
N
1
如果 str 是一个 M × 1 字符串数组或元胞数组,则 newStr 是一个 M × N 数组。
M
如果 str 是一个 1 × M 字符串数组或元胞数组,则 newStr 是一个 1 × M × N 数组。
对于任意大小的字符串数组或元胞数组, split 沿大小为 1 的第一个尾部维度确定 N 个子字符串的方向。
split
如果 str 的每个元素的子字符串数量不相同,则在 for 循环中调用 split ,一次拆分 str 的一个元素。
for
newStr = split( str , delimiter ) 在 delimiter 指定的分隔符处拆分 str 的每个元素。输出 newStr 不包括分隔符。
newStr = split( str , delimiter )
delimiter
newStr = split( str , delimiter , dim ) 将 str 的每个元素拆分为一个向量,该向量的方向为 dim 指定的维度方向。
newStr = split( str , delimiter , dim )
dim
[ newStr , match ] = split( ___ ) 还返回一个数组 match ,它包含作为 split 函数拆分 str 的位置而出现的所有分隔符。您可将此语法与上述语法中的任何输入参量一起使用。
[ newStr , match ] = split( ___ )
match
全部折叠
在空白字符处拆分字符串数组中的姓名。然后重新排序并联接这些字符串,使姓在名的前面。
创建一个包含姓名的 3×1 字符串数组。
names = ["Mary Butler"; "Santiago Marquez"; "Diana Lee"]
names = 3x1 string "Mary Butler" "Santiago Marquez" "Diana Lee"
在空白字符处拆分 names ,使其成为一个 3×2 字符串数组。
names
names = split(names)
names = 3x2 string "Mary" "Butler" "Santiago" "Marquez" "Diana" "Lee"
将 names 的列交换位置,使姓在第一列。在每个姓后面添加一个逗号。
names = [names(:,2) names(:,1)]; names(:,1) = names(:,1) + ','
names = 3x2 string "Butler," "Mary" "Marquez," "Santiago" "Lee," "Diana"
将姓和名联接起来。 join 函数在它联接的字符串之间放置一个空格字符。联接之后, names 是一个 3×1 字符串数组。
join
names = join(names)
names = 3x1 string "Butler, Mary" "Marquez, Santiago" "Lee, Diana"
创建一个包含文件夹路径的字符串。
myPath = "/Users/jdoe/My Documents/Examples"
在 / 字符处拆分路径。 split 将以 5×1 字符串数组的形式返回 myFolders 。第一个字符串为 "" ,因为 myPath 以 / 字符开头。
/
myFolders
""
myPath
myFolders = split(myPath,"/")
myFolders = 5x1 string "Users" "jdoe" "My Documents" "Examples"
使用 \ 作为分隔符,将 myFolders 联接成一个新路径。添加 C: 作为路径的开头。
\
C:
myNewPath = join(myFolders,"\"); myNewPath = 'C:' + myNewPath
myNewPath = "C:\Users\jdoe\My Documents\Examples"
自 R2020b 开始提供
通过将文本视为分隔符从字符串中获取数字。使用模式匹配文本。然后将数字相加。
首先,创建一个包含数字的字符串。
str = "10 apples 3 bananas and 5 oranges"
然后,创建一个匹配空白字符或字母的模式。
pat = " " | lettersPattern
pat = pattern Matching: " " | lettersPattern
使用 pat 作为分隔符拆分字符串。空字符串表示空白和其间没有任何内容的字母序列之间的拆分。例如,在 "10 apples" 中,分隔符 " " 之前有一个拆分,然后在 " " 和 "apples" 之间有一个拆分。由于分隔符 " " 和 "apples" 之间没有任何内容, split 函数返回空字符串来指示它们之间没有任何内容。
pat
"10 apples"
" "
"apples"
N = split(str,pat)
N = 11x1 string
丢弃空字符串,并保留表示数字的子字符串。
N = N(strlength(N) > 0)
N = 3x1 string
最后,将 N 转换为数值数组,并对其求和。
N = str2double(N); sum(N)
ans = 18
有关创建模式对象的函数列表,请参阅 pattern 。
pattern
创建一个字符串。
str = "A horse! A horse! My kingdom for a horse!"
在感叹号和空白字符处拆分 str 。 newStr 是一个 10×1 字符串数组。最后一个字符串为空字符串 "" ,因为 str 中的最后一个字符是分隔符。
newStr = split(str,[" ","!"])
newStr = 12x1 string "horse" "horse" "kingdom" "for" "horse"
创建一个字符串数组,其中每个元素包含一位患者的数据,数据之间以逗号分隔。
patients = ["LastName,Age,Gender,Height,Weight"; "Adams,47,F,64,123"; "Jones,,,68,175"; "King,,M,66,180"; "Smith,38,F,63,118"]
patients = 5x1 string "LastName,Age,Gender,Height,Weight" "Adams,47,F,64,123" "Jones,,,68,175" "King,,M,66,180" "Smith,38,F,63,118"
拆分字符串数组。两个逗号之间什么也没有即表示缺失数据。如果 split 在拆分时遇到重复的分隔符,它会返回空字符串作为输出数组中的对应元素。
patients = split(patients,",")
patients = 5x5 string "LastName" "Age" "Gender" "Height" "Weight" "Adams" "47" "F" "64" "123" "Jones" "" "" "68" "175" "King" "" "M" "66" "180" "Smith" "38" "F" "63" "118"
在空白字符处拆分数组。默认情况下, split 沿大小为 1 的第一个尾随维度定向输出子字符串。因为 names 是一个 3×1 字符串数组,所以 split 沿 splitNames 的第二个维度(即列)来定向子字符串。
splitNames
splitNames = split(names)
splitNames = 3x2 string "Mary" "Butler" "Santiago" "Marquez" "Diana" "Lee"
要沿行(即第一个维度)定向子字符串,请在指定分隔符之后指定维度。 splitNames 现在是一个 2×3 字符串数组,名在第一行,姓在第二行。
splitNames = split(names," ",1)
splitNames = 2x3 string "Mary" "Santiago" "Diana" "Butler" "Marquez" "Lee"
str = "bacon, lettuce, and tomato"
在分隔符处拆分 str 。在一个字符串数组中返回拆分结果,在第二个字符串数组中返回分隔符。当连续的分隔符之间没有任何文本时, split 将返回空字符串。
[newStr,match] = split(str,["and",","," "])
newStr = 7x1 string "bacon" "lettuce" "tomato"
match = 6x1 string "and"
使用 join 函数将 newStr 和 match 重新联接起来。
originalStr = join(newStr,match)
originalStr = "bacon, lettuce, and tomato"
输入文本,指定为字符串数组、字符向量或字符向量元胞数组。
分隔子字符串,指定为下列值之一:
字符串数组
字符向量
字符向量元胞数组
pattern 数组 (自 R2020b 开始提供)
在 delimiter 中指定的子字符串不会显示在输出 newStr 中。
在一个字符串数组、字符向量元胞数组或 pattern 数组中指定多个分隔符。 split 函数根据 delimiter 的元素拆分 str 。分隔符在 delimiter 中显示的顺序无关紧要,除非有多个分隔符都从 str 中的同一字符处开始匹配。在这种情况下, split 函数将在 delimiter 中的第一个匹配分隔符处进行拆分。
示例: split(str,{' ',',','--'}) 在出现空格、逗号和连续短划线对组的位置拆分 str 。
split(str,{' ',',','--'})
拆分字符串时所沿的维度,指定为正整数。如果不指定 dim ,则默认值为大小不等于 1 的最后一个数组维度。
从原始数组拆分出来的子字符串,以字符串数组或字符向量元胞数组形式返回。如果输入数组 str 是字符串数组,则 newStr 也是字符串数组。否则, newStr 为字符向量元胞数组。
标识的分隔符,以字符串数组或字符向量元胞数组形式返回。如果输入数组 str 是字符串数组,则 match 也是字符串数组。否则, match 为字符向量元胞数组。
match 包含的元素总是比输出 newStr 包含的元素少一个。
用法说明和限制:
不支持模式对象。
有关详细信息,请参阅 tall 数组 。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅 在基于线程的环境中运行 MATLAB 函数 。
在 R2016b 中推出
join | extract | string | newline | compose | splitlines | pattern | lettersPattern | count
extract
string
newline
compose
splitlines
lettersPattern
count
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.