主要内容

extractBetween

提取起始点和结束点之间的子字符串

描述

例子

newStr= extractBetween (strstartPatendPat提取子字符串str这发生在子字符串之间startPat而且endPat.提取的子字符串不包括startPat而且endPat

newStr是字符串数组ifstr是一个字符串数组。否则,newStr是字符向量的单元格数组。

如果str是字符串数组还是字符向量的单元格数组extractBetween的每个元素中提取子字符串str

例子

newStr= extractBetween (strstartPosendPos提取子字符串str这发生在位置之间startPos而且endPos,包括这些位置上的人物。extractBetween返回子字符串为newStr

例子

newStr= extractBetween (___“边界”,界限强制在前面任何语法中指定的开始和结束为包含或排他。他们是包容的界限“包容”,当界限“独家”.例如,extractBetween (str startPat endPat,“边界”,“包容性”)返回startPatendPat,和他们之间的所有文字一样newStr

例子

全部折叠

创建字符串数组并选择出现在子字符串之间的文本。

str =“敏捷的棕色狐狸”
str = "敏捷的棕色狐狸"

选择出现在子字符串之间的文本“快”而且“狐狸”.的extractBetween函数选择但不包含的文本“快”“狐狸”在输出中。

newStr = extractBetween(str,“快”“狐狸”
newStr = "brown"

从字符串数组的每个元素中选择子字符串。当指定不同的子字符串作为开始和结束指示符时,它们必须包含在大小相同的字符串数组或单元格数组中str

STR = [“敏捷的棕色狐狸跳跃”“在懒惰的狗上方”
str =2 x1字符串"敏捷的棕色狐狸" "跳过懒狗"
newStr = extractBetween(str,[“快”“的”]、[“狐狸”“狗”])
newStr =2 x1字符串”布朗”“懒”

自从R2020b

创建一个由标记包围的文本字符串数组。

STR = [“< courseName >微积分我< / courseName >”学期“< >”2020年秋季学期< / >“<时间表> MWF 8:00-8:50 < /时间表>”
str =3 x1字符串"Calculus I" "Fall 2020" "MWF 8:00-8:50"

提取标记所包含的文本。属性创建匹配任何开始标记和结束标记的模式wildcardPattern函数。

startPat =" < "+ wildcardPattern +“>”
startPat =模式匹配:"<" +通配符模式+ ">"
endPat =" < /+ wildcardPattern +“>”
endPat =模式匹配:""

然后调用extractBetween函数。

newStr = extractBetween(str,startPat,endPat)
newStr =3 x1字符串“微积分I”“2020年秋季”“MWF 8:00-8:50”

有关创建模式对象的函数列表,请参见模式

创建字符串数组,并在指定为数字的开始和结束位置之间选择子字符串。

str =《埃德加·艾伦·坡》
str = "埃德加·爱伦·坡"

选择中间名称。指定字符串中的第7和第11个位置。

newStr = extractBetween(str,7,11)
newStr = "Allen"

从字符串数组的每个元素中选择子字符串。当使用数值数组指定不同的开始和结束位置时,它们必须与输入字符串数组的大小相同。

STR = [《埃德加·艾伦·坡》路易莎·梅·奥尔科特
str =2 x1字符串《埃德加·艾伦·坡》《路易莎·梅·奥尔科特》
newStr = extractBetween(str,[7;8],[11;10])
newStr =2 x1字符串“艾伦”“可能”

从具有强制包含或排除边界的字符串数组中选择文本。extractBetween如果边界是包含的,则包含所选文本的边界。extractBetween如果边界是排他性的,则不包含所选文本的边界。

str1 =“小|中|大”
Str1 = "小|中|大"

选择第6到13个位置之间的文本,但不包括这些位置上的字符。

newStr = extractBetween(str1,6,13,“界限”“独家”
newStr = "medium"

选择两个子字符串之间的文本,以及子字符串本身。

str2 =“敏捷的棕色狐狸跳过了懒狗”
str2 = "敏捷的棕色狐狸跳过了懒狗"
newStr = extractBetween(str2,“棕色”“跳跃”“界限”“包容”
newStr = "棕色狐狸跳跃"

创建一个字符向量,并在开始和结束位置之间选择文本。

空空的=蘑菇,辣椒和洋葱
CHR =“蘑菇、辣椒和洋葱”
newChr = extractBetween(chr,12,18)
newChr =1x1单元阵列{“辣椒”}

选择子字符串之间的文本。

newChr = extractBetween(chr,“蘑菇”,”和“
newChr =1x1单元阵列{“辣椒”}

输入参数

全部折叠

输入文本,指定为字符串数组、字符向量或字符向量的单元格数组。

标记要提取的文本的起始位置的文本或模式,指定为下列之一:

  • 字符串数组

  • 特征向量

  • 字符向量的单元格数组

  • 模式数组(因为R2020b)

如果str是字符串数组或单元格数组的字符向量,那么您可以从的每个元素中提取子字符串str.的每个元素中可以指定子字符串都具有相同的开始,也可以指定子字符串具有不同的开始str

  • 要指定相同的开始,请指定startPat作为字符向量、字符串标量或模式对象。

  • 要指定不同的开始,请指定startPat作为字符串数组,单元格数组的字符向量,或模式数组中。

例子:extractBetween (str,“AB”、“YZ”)提取之间的子字符串AB而且YZ在每一个元素中str

例子:如果str是一个2——- - - - - -1那么是字符串数组extractBetween (str(“AB”;“成品”)(“YZ”;“圣”))提取之间的子字符串AB而且YZstr (1),以及成品而且str (2)

标记要提取的文本的结束位置的文本或图案,指定为下列之一:

  • 字符串数组

  • 特征向量

  • 字符向量的单元格数组

  • 模式数组(因为R2020b)

如果str是字符串数组或单元格数组的字符向量,那么您可以从的每个元素中提取子字符串str.您可以指定子字符串在的每个元素中都具有相同的结尾或具有不同的结尾str

  • 要指定相同的结束,请指定endPat作为字符向量、字符串标量或模式对象。

  • 要指定不同的端点,请指定endPat作为字符串数组,单元格数组的字符向量,或模式数组中。

例子:extractBetween (str,“AB”、“YZ”)提取之间的子字符串AB而且YZ在每一个元素中str

例子:如果str是一个2——- - - - - -1那么是字符串数组extractBetween (str(“AB”;“成品”)(“YZ”;“圣”))提取之间的子字符串AB而且YZstr (1),以及成品而且str (2)

起始位置,指定为数值数组。

如果str数组是否包含多个文本片段startPos可以是与?大小相同的数值标量或数值数组str

例子:extractBetween (str、5、9)的每个元素中从第5到第9个位置提取子字符串str

例子:如果str是一个2——- - - - - -1那么是字符串数组extractBetween (str [5; 10], [9; 21])从中的第5到第9个位置提取子字符串str (1),从第10位到第21位str (2)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

结束位置,指定为数值数组。

如果str数组是否包含多个文本片段endPos可以是与?大小相同的数值标量或数值数组str

例子:extractBetween (str、5、9)的每个元素中从第5到第9个位置提取子字符串str

例子:如果str是一个2——- - - - - -1那么是字符串数组extractBetween (str [5; 10], [9; 21])从中的第5到第9个位置提取子字符串str (1),从第10位到第21位str (2)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

边界行为,指定为“包容”“独家”.当包含边界行为时,前面参数指定的开始和结束将包含在提取的文本中。如果边界行为是排他性的,则不包括开始和结束。

输出参数

全部折叠

输出文本,作为字符向量的字符串数组或单元格数组返回。

扩展功能

版本历史

在R2016b中引入