目录
extractBetween函数的功能是提取起点和终点之间的子字符串。
语法
cpp
newStr = extractBetween(str,startPat,endPat)
newStr = extractBetween(str,startPos,endPos)
newStr = extractBetween(___,'Boundaries',bounds)
说明
**newStr = extractBetween(str,startPat,endPat)**从 str 的子字符串 startPat 和 endPat 之间提取子字符串。提取的子字符串不包括 startPat 和 endPat。
如果 str 是一个字符串数组,则 newStr 也是一个字符串数组。否则,newStr 为字符向量元胞数组。
如果 str 是一个字符串数组或字符向量元胞数组,extractBetween 将提取 str 的每个元素中的子字符串。
**newStr = extractBetween(str,startPos,endPos)**从出现在位置 startPos 和 endPos 之间的 str 中提取子字符串,包括这些位置处的字符。extractBetween 将子字符串作为 newStr 返回。
**newStr = extractBetween(___,'Boundaries',bounds)**强制包含或不包含在上述任一语法中指定的开始和结束位置。当 bounds 为 'inclusive' 时,包含开始和结束位置;当 bounds 为 'exclusive' 时,不包含开始和结束位置。例如,extractBetween(str,startPat,endPat,'Boundaries','inclusive') 返回 startPat、endPat 以及它们之间的所有文本作为 newStr。
示例
选择子字符串之间的文本
创建字符串数组,并选择出现在子字符串之间的文本。
cs
str = "The quick brown fox"
str =
"The quick brown fox"
选择出现在子字符串 "quick " 和 " fox" 之间的文本。extractBetween 函数选择该文本,但不在输出中包括 "quick " 和 " fox"。
cs
newStr = extractBetween(str,"quick "," fox")
newStr =
"brown"
从字符串数组的每个元素中选择子字符串。当您将不同子字符串指定为开头和结尾指示符时,它们必须包含在与 str具有相同大小的字符串数组或元胞数组中。
cs
str = ["The quick brown fox jumps";"over the lazy dog"]
str = 2x1 string
"The quick brown fox jumps"
"over the lazy dog"
newStr = extractBetween(str,["quick ";"the "],[" fox";" dog"])
newStr = 2x1 string
"brown"
"lazy"
使用模式提取标记之间的文本
创建一个由标记括起来的文本组成的字符串数组。
cpp
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 函数创建匹配任何开始标记和结束标记的模式。
cs
startPat = "<" + wildcardPattern + ">"
startPat = pattern
Matching:
"<" + wildcardPattern + ">"
endPat = "</" + wildcardPattern + ">"
endPat = pattern
Matching:
"</" + wildcardPattern + ">"
然后,调用 extractBetween 函数。
cs
newStr = extractBetween(str,startPat,endPat)
newStr = 3x1 string
"Calculus I"
"Fall 2020"
"MWF 8:00-8:50"
选择开始和结束位置之间的子字符串
创建字符串数组,并选择指定为数字的开始和结束位置之间的子字符串。
cs
str = "Edgar Allen Poe"
str =
"Edgar Allen Poe"
选择中间名。指定字符串中第 7 个和第 11 个位置。
cs
newStr = extractBetween(str,7,11)
newStr =
"Allen"
从字符串数组的每个元素中选择子字符串。当使用数值数组指定不同的开始和结束位置时,它们必须与输入字符串数组具有相同大小。
cs
str = ["Edgar Allen Poe";"Louisa May Alcott"]
str = 2x1 string
"Edgar Allen Poe"
"Louisa May Alcott"
newStr = extractBetween(str,[7;8],[11;10])
newStr = 2x1 string
"Allen"
"May"
在包含或不包含边界的情况下选择文本
在强制包含或不包含边界的情况下从字符串数组中选择文本。如果边界为包含,则 extractBetween 包括选定文本的边界。如果边界为不包含,则 extractBetween 不包括选定文本的边界。
cs
str1 = "small|medium|large"
str1 =
"small|medium|large"
选择第 6 个和第 13 个位置之间的文本,但不包括这些位置上的字符。
cs
newStr = extractBetween(str1,6,13,'Boundaries','exclusive')
newStr =
"medium"
选择两个子字符串之间的文本,包含这些子字符串本身。
cs
str2 = "The quick brown fox jumps over the lazy dog"
str2 =
"The quick brown fox jumps over the lazy dog"
newStr = extractBetween(str2," brown","jumps",'Boundaries','inclusive')
newStr =
" brown fox jumps"
选择字符向量中位置之间的文本
创建字符向量,并选择开始和结束位置之间的文本。
cpp
chr = 'mushrooms, peppers, and onions'
chr =
'mushrooms, peppers, and onions'
newChr = extractBetween(chr,12,18)
newChr = 1x1 cell array
{'peppers'}
选择子字符串之间的文本。
cpp
newChr = extractBetween(chr,'mushrooms, ',', and')
newChr = 1x1 cell array
{'peppers'}