strsplit
在指定分隔符处拆分字符串或字符向量
语法
说明
使用一个或多个名称-值对组参量指定其他分隔符选项。例如,要将连续分隔符视为单独的分隔符,可以指定 C
= strsplit(str
,delimiter
,Name,Value
)'CollapseDelimiters',false
。
示例
str = 'The rain in Spain.';
C = strsplit(str)
C = 1×4 cell
{'The'} {'rain'} {'in'} {'Spain.'}
C
是一个包含四个字符向量的元胞数组。
拆分包含逗号分隔值的字符向量。
data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ')
C = 1×5 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 = 1×6 cell
{'1.21'} {'1.985'} {'1.955'} {'2.015'} {'1.885'} {0×0 char}
matches = 1×5 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 = 1×11 cell
{'The'} {'r'} {'in'} {'Sp'} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1×10 cell
{' '} {'ain '} {' '} {'ain '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
根据空白和 'ain'
拆分同一字符向量,使用正则表达式并分开处理多个分隔符。
[C,matches] = strsplit(str,{'\s','ain'},'CollapseDelimiters',... false, 'DelimiterType','RegularExpression')
C = 1×13 cell
{'The'} {'r'} {0×0 char} {'in'} {'Sp'} {0×0 char} {'stays'} {'m'} {'ly'} {'in'} {'the'} {'pl'} {'.'}
matches = 1×12 cell
{' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {'ain'} {' '} {' '} {' '} {'ain'}
在这种情况下,strsplit
分开处理两个分隔符,因此输出 C
中连续匹配的分隔符之间显示了空字符向量。
根据字符向量 ', '
和 ', and '
拆分文本。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', ',', and '})
C = 1×3 cell
{'bacon'} {'lettuce'} {'and tomato'}
matches = 1×2 cell
{', '} {', '}
由于该命令首先列出 ', '
并且 ', and '
包含 ', '
,因此 strsplit
函数根据第一个分隔符拆分 str
并且不再继续处理到第二个分隔符。
如果您颠倒分隔符的顺序,则 ', and '
具有更高优先级。
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,{', and ',', '})
C = 1×3 cell
{'bacon'} {'lettuce'} {'tomato'}
matches = 1×2 cell
{', '} {', and '}
输入参数
输入文本,指定为字符向量或字符串标量。
数据类型: char
| string
分隔字符,指定为字符向量、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'
和 true
/false
组成的逗号分隔对组。如果为 true
,则 str
中的连续分隔符将作为一个分隔符处理。如果为 false
,则连续分隔符将作为单独的分隔符处理,这会导致匹配的分隔符之间出现空字符向量 ''
元素。
示例: 'CollapseDelimiters',true
分隔符类型,指定为逗号分隔的对组,包含 'DelimiterType'
和下列字符向量之一。
'Simple' | 除了在转义序列中之外,strsplit 将 delimiter 作为字面文本进行处理。 |
'RegularExpression' | strsplit 将 delimiter 作为正则表达式处理。 |
在这两种情况下,delimiter
可以包括转义序列。
输出参量
替代功能
更新使用 strsplit
的代码以改用 split
。split
的默认方向是按列。例如:
不推荐 | 推荐 |
---|---|
str = strsplit("1 2 3") str = 1×3 string array "1" "2" "3" | str = split("1 2 3") str = 3×1 string array "1" "2" "3" |
扩展功能
用法说明和限制:
strsplit
的第一个输入参量必须是字符向量。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2013a 中推出为 strsplit
函数生成 C/C++ 代码。
MATLAB Command
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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)