MATLAB中extractBetween函数用法

目录

语法

说明

示例

选择子字符串之间的文本

使用模式提取标记之间的文本

选择开始和结束位置之间的子字符串

在包含或不包含边界的情况下选择文本

选择字符向量中位置之间的文本


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'}
相关推荐
总要学点什么6 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
开开心心_Every8 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c8 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
吴卫斌8 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
超级架构师9 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
叼烟扛炮10 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
LMT流氓兔10 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真10 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放11 小时前
Python基础语法练习题(75)
开发语言·python·学习
starzy199011 小时前
Scala循环与判断:一切皆表达式的控制流
开发语言·人工智能·scala