extractBefore
提取指定位置前的子字符串
说明
示例
选择子字符串前的文本
创建字符串数组,并选择子字符串之前出现的文本。
str = "The quick brown fox"
str = "The quick brown fox"
提取子字符串 " brown"
之前出现的子字符串。extractBefore
函数选择该文本,但不在输出中包括 " brown"
。
newStr = extractBefore(str," brown")
newStr = "The quick"
根据字符串数组中的元素创建新字符串数组。当您将不同子字符串指定为位置时,它们必须包含在与 str
具有相同大小的字符串数组或元胞数组中。
str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string
"The quick brown fox jumps"
"over the lazy dog"
newStr = extractBefore(str,[" brown";" dog"])
newStr = 2x1 string
"The quick"
"over the lazy"
您还可以将子字符串指定为应用于输入字符串数组的所有元素的位置。
使用模式提取文件名前的路径
创建一个由文件名(包括完整路径)组成的字符串数组。
str = ["C:\Temp\MyReport.docx"; "C:\Data\Experiment1\Trial1\Sample1.csv"; "C:\Temp\Slides.pptx"]
str = 3x1 string
"C:\Temp\MyReport.docx"
"C:\Data\Experiment1\Trial1\Sample1.csv"
"C:\Temp\Slides.pptx"
要提取路径,请先创建一个与路径末尾的文件名匹配的模式,然后提取该模式之前的路径。
一个完整的路径可以包含若干层级,每一层级可由后跟 "\"
字符的任意文本组成。因此,请先创建一个匹配除 "\"
字符之外的任何字符的模式。
name = wildcardPattern("Except","\")
name = pattern
Matching:
wildcardPattern("Except","\")
然后,创建一个模式,匹配在 "\"
字符与字符串末尾之间找到的任何名称。使用 textBoundary
函数匹配字符串的末尾。
pat = "\" + name + textBoundary
pat = pattern
Matching:
"\" + wildcardPattern("Except","\") + textBoundary
最后,调用 extractBefore
。
paths = extractBefore(str,pat)
paths = 3x1 string
"C:\Temp"
"C:\Data\Experiment1\Trial1"
"C:\Temp"
有关创建模式对象的函数列表,请参阅pattern
。
选择位置前的子字符串
使用指定位置前的子字符串创建字符串。
str = "Edgar Allen Poe"
str = "Edgar Allen Poe"
选择第 6 个字符前的子字符串。
newStr = extractBefore(str,6)
newStr = "Edgar"
从字符串数组的每个元素中选择子字符串。当您使用数值数组指定不同位置时,它们必须与输入字符串数组具有相同大小。
str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string
"Edgar Allen Poe"
"Louisa May Alcott"
newStr = extractBefore(str,[6;7])
newStr = 2x1 string
"Edgar"
"Louisa"
从每个元素中选择子字符串,指定相同的位置。
newStr = extractBefore(str,12)
newStr = 2x1 string
"Edgar Allen"
"Louisa May "
选择字符向量中位置前的文本
创建字符向量。然后,创建作为 chr
子字符串的新字符向量。
chr = 'peppers and onions'
chr = 'peppers and onions'
选择第 8 个位置前的子字符串。
newChr = extractBefore(chr,8)
newChr = 'peppers'
选择子字符串前的文本。
newChr = extractBefore(chr,' and')
newChr = 'peppers'
输入参数
str
— 输入文本
字符串数组 | 字符向量 | 字符向量元胞数组
输入文本,指定为字符串数组、字符向量或字符向量元胞数组。
pat
— 标记结束位置的文本或模式
字符串数组 | 字符向量 | 字符向量元胞数组 | pattern
数组
str
中标记提取文本的结束位置的文本或模式,指定为以下项之一:
字符串数组
字符向量
字符向量元胞数组
pattern
数组
extractBefore
函数从提取的子字符串中排除 pat
。
如果 str
是字符串数组或字符向量元胞数组,则可以从 str
的每个元素中提取子字符串。您可以指定子字符串在 str
的每个元素中都有相同的结尾,或有不同的结尾。
要指定相同的结尾,请将
pat
指定为字符向量、字符串标量或pattern
对象。要指定不同的结尾,请将
pat
指定为字符串数组、字符向量元胞数组或pattern
数组。
pos
— 结束位置
数值数组
结束位置,指定为数值数组。
如果 str
是一个字符串数组或字符向量元胞数组,则 pos
可以是与 str
具有相同大小的数值标量或数值数组。
输出参量
newStr
— 输出文本
字符串数组 | 字符向量 | 字符向量元胞数组
输出文本,以字符串数组、字符向量或字符向量元胞数组形式返回。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
str
和pat
必须是字符串标量、字符向量或最多包含一个字符向量的元胞数组。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
版本历史记录
在 R2016b 中推出
另请参阅
split
| join
| erase
| extract
| extractAfter
| extractBetween
| insertAfter
| insertBefore
| replace
| strlength
| count
| pattern
| wildcardPattern
| textBoundary
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)