MATLAB中extractAfter函数用法
目录
语法
说明
示例
选择子字符串后的文本
使用模式提取路径后的文件名
选择指定位置后的子字符串
选择字符向量中位置之后的文本
extractAfter函数的用法是提取指定位置后的子字符串。
语法
newStr = extractAfter(str,pat)
newStr = extractAfter(str,pos)
说明
newStr = extractAfter(str,pat) 提取在 pat 指定的子字符串后开始并以 str 的最后一个字符结尾的子字符串。如果 pat 在 str 中多次出现,则 newStr 是 str 中从 pat 第一次出现的位置到结束的内容。
如果 str 是一个字符串数组或字符向量元胞数组,extractAfter 将提取 str 的每个元素中的子字符串。输出参数 newStr 的数据类型与 str 相同。
newStr = extractAfter(str,pos) 提取在 pos 指定的位置后开始并以 str 的最后一个字符结尾的子字符串。
示例
选择子字符串后的文本
创建字符串数组,并选择子字符串之后出现的文本。
str = "The quick brown fox"
str =
"The quick brown fox"
提取子字符串 "quick " 之后出现的子字符串。extractAfter 函数选择新文本,但不在输出中包括 "quick "。
newStr = extractAfter(str,"quick ")
newStr =
"brown fox"
根据字符串数组中的元素创建新字符串数组。当您将不同子字符串指定为位置时,它们必须包含在与输入字符串数组具有相同大小的字符串数组或元胞数组中。
str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string
"The quick brown fox jumps"
"over the lazy dog"
newStr = extractAfter(str,["quick ";"the "])
newStr = 2x1 string
"brown fox jumps"
"lazy dog"
还可以将子字符串指定为应用于输入字符串数组的所有元素的位置。
使用模式提取路径后的文件名
创建一个由文件名(包括完整路径)组成的字符串数组。
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"
要提取文件名,请先创建一个匹配完整路径的模式,然后提取该模式后的内容。
一个完整的路径可以包含若干层级,每一层级可由后跟 "\"
字符的任意文本组成。因此,请先创建一个匹配一个级别的模式。
level = wildcardPattern + "\"
level = pattern
Matching:
wildcardPattern + "\"
然后,创建一个匹配完整路径的模式,其中可包含任意数量的层级。
pat = asManyOfPattern(level)
pat = pattern
Matching:
asManyOfPattern(wildcardPattern + "\")
最后,调用 extractAfter。
filenames = extractAfter(str,pat)
filenames = 3x1 string
"MyReport.docx"
"Sample1.csv"
"Slides.pptx"
选择指定位置后的子字符串
使用指定位置后的子字符串创建字符串。
str = "Edgar Allen Poe"
str =
"Edgar Allen Poe"
选择第 12 个字符后的子字符串。
newStr = extractAfter(str,12)
newStr =
"Poe"
从字符串数组的每个元素中选择子字符串。当使用数值数组指定不同位置时,它们必须与输入字符串数组具有相同大小。
str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string
"Edgar Allen Poe"
"Louisa May Alcott"
newStr = extractAfter(str,[12;11])
newStr = 2x1 string
"Poe"
"Alcott"
从每个元素中选择子字符串,指定相同的位置。
newStr = extractAfter(str,6)
newStr = 2x1 string
"Allen Poe"
" May Alcott"
选择字符向量中位置之后的文本
创建字符向量。然后,创建作为chr子字符串的新字符向量。
chr = 'peppers and onions'
chr =
'peppers and onions'
选择第 12 个位置后的文本。
newChr = extractAfter(chr,12)
newChr =
'onions'
选择子字符串后的文本。
newChr = extractAfter(chr,'and ')
newChr =
'onions'
参数说明
str — 输入文本
输入文本,指定为字符串数组、字符向量或字符向量元胞数组。
pat — 标记开始位置的文本或模式
str 中标记所提取文本的开始位置的文本或模式,指定为以下项之一:
-
字符串数组
-
字符向量
-
字符向量元胞数组
-
pattern数组(自 R2020b 开始提供)
extractAfter 函数从提取的子字符串中排除 pat。
如果 str 是字符串数组或字符向量元胞数组,则可以从 str 的每个元素中提取子字符串。您可以指定子字符串在 str 的每个元素中都有相同的开头,或不同的开头。
-
要指定相同的开头,请将 pat 指定为字符向量、字符串标量或 pattern 对象。
-
要指定不同开头,请将 pat 指定为字符串数组、字符向量元胞数组或 pattern 数组。
pos — 开始位置
开始位置,指定为数值数组。extractAfter 从提取的子字符串中排除位于 pos 处的字符。
如果 str 是一个字符串数组或字符向量元胞数组,则 pos 可以是与 str 具有相同大小的数值标量或数值数组。
newStr — 输出文本
输出文本,以字符串数组、字符向量或字符向量元胞数组形式返回。