eraseBetween
删除起点和终点之间的子字符串
语法
说明
示例
删除子字符串之间的文本
创建字符串数组。然后删除出现在子字符串之间的文本。
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 = pattern
Matching:
"<" + wildcardPattern + ">"
endPat = "</" + wildcardPattern + ">"
endPat = pattern
Matching:
"</" + wildcardPattern + ">"
然后,调用 eraseBetween
函数。
newStr = eraseBetween(str,startPat,endPat)
newStr = 3x1 string
"<courseName></courseName>"
"<semester></semester>"
"<schedule></schedule>"
有关创建模式对象的函数的列表,请参阅pattern
。
删除开始和结束位置之间的子字符串
创建字符串数组,并删除以数字指定的开始和结束位置之间的子字符串。
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
数组
标记要删除的文本的开始位置的文本或模式,指定为下列项之一:
字符串数组
字符向量
字符向量元胞数组
pattern
数组
如果 str
是字符串数组或字符向量元胞数组,则可以从 str
的每个元素中删除子字符串。您可以指定子字符串在 str
的每个元素中都有相同的开头,或不同的开头。
要指定相同的开头,请将
startPat
指定为字符向量、字符串标量或pattern
对象。要指定不同开头,请将
startPat
指定为字符串数组、字符向量元胞数组或pattern
数组。
示例: eraseBetween(str,"AB","YZ")
将删除 str
的每个元素中介于 AB
和 YZ
之间的所有字符。
示例: 如果 str
是一个 2
×1
字符串数组,eraseBetween(str,["AB";"FG"],["YZ";"ST"])
将删除 YZ
中介于 AB
和 str(1)
之间以及 str(2)
中介于 FG
和 ST
之间的所有字符。
endPat
— 标记结束位置的文本或模式
字符串数组 | 字符向量 | 字符向量元胞数组 | pattern
数组
标记要删除的文本的结束位置的文本或模式,指定为下列项之一:
字符串数组
字符向量
字符向量元胞数组
pattern
数组
如果 str
是字符串数组或字符向量元胞数组,则可以从 str
的每个元素中删除子字符串。您可以指定子字符串在 str
的每个元素中都有相同的结尾,或有不同的结尾。
要指定相同的结尾,请将
endPat
指定为字符向量、字符串标量或pattern
对象。要指定不同的结尾,请将
endPat
指定为字符串数组、字符向量元胞数组或pattern
数组。
示例: eraseBetween(str,"AB","YZ")
将删除 str
的每个元素中介于 AB
和 YZ
之间的所有字符。
示例: 如果 str
是一个 2
×1
字符串数组,eraseBetween(str,["AB";"FG"],["YZ";"ST"])
将删除 YZ
中介于 AB
和 str(1)
之间以及 str(2)
中介于 FG
和 ST
之间的所有字符。
startPos
— 开始位置
数值数组
开始位置,指定为数值数组。
如果 str
是一个字符串数组或字符向量元胞数组,则 startPos
可以是与 str
具有相同大小的数值标量或数值数组。
示例: eraseBetween(str,5,9)
删除 str
的每个元素中从第五个位置到第九个位置的所有字符。
示例: 如果 str
是一个 2
×1
字符串数组,则 eraseBetween(str,[5;10],[9;21])
删除 str(1)
中从第五个位置到第九个位置以及 str(2)
中从第 10 个位置到第 21 个位置的所有字符。
endPos
— 结束位置
数值数组
结束位置,指定为数值数组。
如果 str
是一个字符串数组或字符向量元胞数组,则 endPos
可以是与 str
具有相同大小的数值标量或数值数组。
示例: eraseBetween(str,5,9)
删除 str
的每个元素中从第五个位置到第九个位置的所有字符。
示例: 如果 str
是一个 2
×1
字符串数组,则 eraseBetween(str,[5;10],[9;21])
删除 str(1)
中从第五个位置到第九个位置以及 str(2)
中从第 10 个位置到第 21 个位置的所有字符。
bounds
— 边界行为
'inclusive'
| 'exclusive'
边界行为,指定为 'inclusive'
或 'exclusive'
。当边界行为是 inclusive(包含)时,由前面的参量指定的起点和终点将包含在删除的文本中。如果边界行为是 exclusive(不包含),则不包含起点和终点。
输出参量
newStr
— 输出文本
字符串数组 | 字符向量 | 字符向量元胞数组
输出文本,以字符串数组、字符向量或字符向量元胞数组形式返回。str
和 newStr
具有相同的数据类型。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
str
、startPat
和endPat
必须是字符串标量、字符向量或包含不超过一个字符向量的元胞数组。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
用法说明和限制:
startPat
和endPat
必须为字符串数组、字符向量或字符向量元胞数组。
有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2016b 中推出
另请参阅
split
| join
| erase
| extract
| extractBetween
| insertAfter
| insertBefore
| replace
| replaceBetween
| strlength
| count
| pattern
| wildcardPattern
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)