目录
语法
说明
示例
删除子字符串之间的文本
删除模式之间的文本
删除开始和结束位置之间的子字符串
在包含或不包含边界的情况下删除文本
删除字符向量中两个位置之间的文本
eraseBetween函数的功能是删除起点和终点之间的子字符串。
语法
newStr = eraseBetween(str,startPat,endPat)
newStr = eraseBetween(str,startPos,endPos)
newStr = eraseBetween(___,'Boundaries',bounds)
说明
newStr = eraseBetween(str,startPat,endPat) 删除 str 中出现在子字符串 startPat 和 endPat 之间的所有字符,但不删除 startPat 和 endPat 本身。eraseBetween 会将剩余文本作为 newStr 返回。
如果 str 是一个字符串数组或字符向量元胞数组,eraseBetween 将删除 str 的每个元素中的字符。输出参数 newStr 的数据类型与 str 相同。
newStr = eraseBetween(str,startPos,endPos) 删除 str 中出现在位置 startPos 和 endPos 之间的所有字符,包括这两个位置上的字符。
newStr = eraseBetween(___,'Boundaries',bounds) 强制包含或不包含在上述任一语法中指定的开始和结束位置。当 bounds 为 'inclusive' 时,包含开始和结束位置;当 bounds 为 'exclusive' 时,不包含开始和结束位置。
例如,eraseBetween(str,startPat,endPat,'Boundaries','inclusive') 删除 startPat、endPat 以及它们之间的所有文本。
示例
删除子字符串之间的文本
创建字符串数组。然后删除出现在子字符串之间的文本。
str = "The quick brown fox"
str =
"The quick brown fox"
删除出现在子字符串 "quick" 和 " fox" 之间的文本。eraseBetween 函数会删除文本,但不会删除 "quick" 和 " fox"。
newStr = eraseBetween(str,"quick"," fox")
newStr =
"The quick fox"
从字符串数组的每个元素中删除子字符串。当您将不同子字符串指定为开头和结尾指示符时,它们必须包含在与 str 具有相同大小的字符串数组或字符向量元胞数组中。
str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string"The quick brown fox jumps""over the lazy dog"startPos = ["quick";"the"];
endPos = [" fox";" dog"];
newStr = eraseBetween(str,startPos,endPos)
newStr = 2x1 string"The quick fox jumps""over the dog"
删除模式之间的文本
创建一个字符串数组,其中包含用标记括起来的文本。
str = ["<courseName>Calculus I</courseName>";"<semester>Fall 2020</semester>";"<schedule>MWF 8:00-8:50</schedule>"]
str = 3x1 string"<courseName>Calculus I</courseName>""<semester>Fall 2020</semester>""<schedule>MWF 8:00-8:50</schedule>"
删除由标记括起来的文本。首先使用 wildcardPattern 函数创建匹配任何开始标记和结束标记的模式。
startPat = "<" + wildcardPattern + ">"
startPat = patternMatching:"<" + wildcardPattern + ">"endPat = "</" + wildcardPattern + ">"
endPat = patternMatching:"</" + wildcardPattern + ">"
然后,调用 eraseBetween 函数。
ewStr = eraseBetween(str,startPat,endPat)
newStr = 3x1 string"<courseName></courseName>""<semester></semester>""<schedule></schedule>"
删除开始和结束位置之间的子字符串
创建字符串数组,并删除以数字指定的开始和结束位置之间的子字符串。
str = "Edgar Allen Poe"
str =
"Edgar Allen Poe"
删除子字符串。要删除中间名和其中一个空白字符,请指定字符串中的第 6 个和第 11 个位置。删除的子字符串包括第 6 个和第 11 个字符。
newStr = eraseBetween(str,6,11)
newStr =
"Edgar Poe"
从字符串数组的每个元素中删除子字符串。当使用数值数组指定不同的开始和结束位置时,它们必须与输入字符串数组具有相同大小。
str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string"Edgar Allen Poe""Louisa May Alcott"startsPos = [6;7];
endPos = [11;10];
newStr = eraseBetween(str,startsPos,endPos)
newStr = 2x1 string"Edgar Poe""Louisa Alcott"
在包含或不包含边界的情况下删除文本
在强制包含或不包含边界的情况下从字符串数组中删除文本。当它们为包含时,eraseBetween 将删除边界元素。当它们为不包含时,eraseBetween 将边界作为输出字符串数组的一部分返回。
str = "small|medium|large"
str =
"small|medium|large"
删除第 6 个和第 13 个位置之间的文本,但不删除这些位置上的字符。
newStr = eraseBetween(str,6,13,'Boundaries','exclusive')
newStr =
"small||large"
删除两个子字符串之间的文本,同时删除子字符串本身。
str = "The quick brown fox jumps over the lazy dog"
str =
"The quick brown fox jumps over the lazy dog"
newStr = eraseBetween(str," brown","lazy",'Boundaries','inclusive')
newStr =
"The quick dog"
删除字符向量中两个位置之间的文本
创建字符向量,并删除开始和结束位置之间的文本。
chr = 'mushrooms, peppers, and onions'
chr =
'mushrooms, peppers, and onions'
newChr = eraseBetween(chr,10,19)
newChr =
'mushrooms and onions'
删除子字符串之间的文本。
newChr = eraseBetween(chr,'mushrooms',' and')
newChr =
'mushrooms and onions'
参数说明
str — 输入文本
输入文本,指定为字符串数组、字符向量或字符向量元胞数组。
startPat — 标记开始位置的文本或模式
标记要删除的文本的开始位置的文本或模式,指定为下列项之一:
-
字符串数组
-
字符向量
-
字符向量元胞数组
-
pattern 数组
如果 str 是字符串数组或字符向量元胞数组,则可以从 str 的每个元素中删除子字符串。您可以指定子字符串在 str 的每个元素中都有相同的开头,或不同的开头。
-
要指定相同的开头,请将 startPat 指定为字符向量、字符串标量或 pattern 对象。
-
要指定不同开头,请将 startPat 指定为字符串数组、字符向量元胞数组或 pattern 数组。
endPat — 标记结束位置的文本或模式
标记要删除的文本的结束位置的文本或模式,指定为下列项之一:
-
字符串数组
-
字符向量
-
字符向量元胞数组
-
pattern 数组
如果 str 是字符串数组或字符向量元胞数组,则可以从 str 的每个元素中删除子字符串。您可以指定子字符串在 str 的每个元素中都有相同的结尾,或有不同的结尾。
-
要指定相同的结尾,请将 endPat 指定为字符向量、字符串标量或 pattern 对象。
-
要指定不同的结尾,请将 endPat 指定为字符串数组、字符向量元胞数组或 pattern 数组。
startPos — 开始位置
开始位置,指定为数值数组。
如果 str 是一个字符串数组或字符向量元胞数组,则 startPos 可以是与 str 具有相同大小的数值标量或数值数组。
endPos — 结束位置
结束位置,指定为数值数组。
如果 str 是一个字符串数组或字符向量元胞数组,则 endPos 可以是与 str 具有相同大小的数值标量或数值数组。
bounds — 边界行为
边界行为,指定为 'inclusive' 或 'exclusive'。当边界行为是 inclusive(包含)时,由前面的参数指定的起点和终点将包含在删除的文本中。如果边界行为是 exclusive(不包含),则不包含起点和终点。
newStr — 输出文本
输出文本,以字符串数组、字符向量或字符向量元胞数组形式返回。str 和 newStr 具有相同的数据类型。