strsplit
在指定分隔符处拆分字符串或字符向量
语法
说明
使用一个或多个名称-值对组参数指定其他分隔符选项。例如,要将连续分隔符视为单独的分隔符,可以指定 C
= strsplit(str
,delimiter
,Name,Value
)'CollapseDelimiters',false
。
示例
在空白处拆分字符向量
str = 'The rain in Spain.';
C = strsplit(str)
C = 1x4 cell
{'The'} {'rain'} {'in'} {'Spain.'}
C
是一个包含四个字符向量的元胞数组。
在特定分隔符处拆分值的字符向量
拆分包含逗号分隔值的字符向量。
data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ')
C = 1x5 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'}
拆分字符向量 data
,其中包含数值文本、单位 m/s
,且文本任意一侧可能有任意数量的空白。正则表达式 \s*
匹配出现零次或多次的任何空白字符。
data = '1.21m/s1.985m/s 1.955 m/s2.015 m/s 1.885m/s'; [C,matches] = strsplit(data,'\s*m/s\s*',... 'DelimiterType','RegularExpression')
C = 1x6 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'} {0x0 char}
matches = 1x5 cell
{'m/s'} {'m/s '} {' m/s'} {' m/s '} {'m/s'}
在这种情况下,C
中的最后一个字符向量为空。此空字符向量在最后一个匹配的分隔符后。
根据文件分隔符拆分路径
拆分具有多个分隔符的字符向量
根据 ' '
和 'ain'
拆分字符向量,并将多个分隔符作为一个分隔符处理。在字符向量元胞数组中指定多个分隔符。
str = 'The rain in Spain stays mainly in the plain.'; [C,matches] = strsplit(str,{' ','ain'},'CollapseDelimiters',true)
C = 1x11 cell
{'The'} {'r'} {'in'} {'Sp'} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1x10 cell
{' '} {'ain '} {' '} {'ain '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
根据空白和 'ain'
拆分同一字符向量,使用正则表达式并分开处理多个分隔符。
[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',... false, 'DelimiterType','RegularExpression')
C = 1x13 cell
{'The'} {'r'} {0x0 char} {'in'} {'Sp'} {0x0 char} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1x12 cell
{' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
在这种情况下,strsplit
分开处理两个分隔符,因此输出 C
中连续匹配的分隔符之间显示了空字符向量。
拆分具有多个重叠分隔符的文本
根据字符向量 ', '
和 ', and '
拆分文本。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', ',', and '})
C = 1x3 cell
{'bacon'} {'lettuce'} {'and tomato'}
matches = 1x2 cell
{', '} {', '}
由于该命令首先列出 ', '
并且 ', and '
包含 ', '
,因此 strsplit
函数根据第一个分隔符拆分 str
并且不再继续处理到第二个分隔符。
如果您颠倒分隔符的顺序,则 ', and '
具有更高优先级。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', and ',', '})
C = 1x3 cell
{'bacon'} {'lettuce'} {'tomato'}
matches = 1x2 cell
{', '} {', and '}
输入参数
str
— 输入文本
字符向量 | 字符串标量
输入文本,指定为字符向量或字符串标量。
数据类型: char
| string
delimiter
— 分隔字符
字符向量 | 1
×n
字符向量元胞数组 | 1
×n
字符串数组
分隔字符,指定为字符向量、1
×n
字符向量元胞数组或 1
×n
字符串数组。在 delimiter
中指定的文本不会显示在输出 C
中。
在元胞数组或字符串数组中指定多个分隔符。strsplit
函数根据 delimiter
的元素拆分 str
。分隔符在 delimiter
中显示的顺序无关紧要,除非有多个分隔符都从 str
中的同一字符处开始匹配。在此种情况下,strsplit
将在 delimiter
中的第一个匹配分隔符处进行拆分。
delimiter
可以包含下列转义序列:
| 反斜杠 |
| 空值 |
| 警报 |
| 退格符 |
| 换页符 |
| 换行符 |
| 回车符 |
| 水平制表符 |
| 垂直制表符 |
示例: ','
示例: {'-',','}
数据类型: char
| cell
| string
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'DelimiterType','RegularExpression'
指示 strsplit
将 delimiter
视为正则表达式。
CollapseDelimiters
— 多分隔符处理
1 (true)
(默认) | 0 (false)
多分隔符处理,指定为由 'CollapseDelimiters'
和 true
/false
组成的逗号分隔对组。如果为 true
,则 str
中的连续分隔符将作为一个分隔符处理。如果为 false
,则连续分隔符将作为单独的分隔符处理,这会导致匹配的分隔符之间出现空字符向量 ''
元素。
示例: 'CollapseDelimiters',true
DelimiterType
— 分隔符类型
'Simple'
(默认) | 'RegularExpression'
分隔符类型,指定为逗号分隔的对组,包含 'DelimiterType'
和下列字符向量之一。
'Simple' | 除了在转义序列中之外,strsplit 将 delimiter 作为字面文本进行处理。 |
'RegularExpression' | strsplit 将 delimiter 作为正则表达式处理。 |
在这两种情况下,delimiter
可以包括转义序列。
输出参数
C
— 原始文本的一部分
字符向量元胞数组 | 字符串数组
原始字符向量的一部分,以字符向量元胞数组或字符串数组形式返回。C
始终比 matches
多包含一个元素。因此,如果 str
以分隔符开头,则 C
的第一个元素不包含任何字符。如果 str
以分隔符结尾,则 C
中的最后一个元胞不包含任何字符。
matches
— 找到的分隔符
字符向量元胞数组 | 字符串数组
标识的分隔符,以字符向量元胞数组或字符串数组形式返回。matches
始终比输出 C
少包含一个元素。如果 str
是字符向量或字符向量元胞数组,则 matches
是元胞数组。如果 str
是字符串数组,则 matches
是字符串数组。
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅Run MATLAB Functions in Thread-Based Environment。
版本历史记录
在 R2013a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)