文档

搜索和替换文本

您可以在字符数组和字符串数组中搜索文本,并使用新文本替换子字符串。2016b版中引入了字符串数组以及用于搜索和替换文本的新函数。使用诸如包含类似地,将字符串中的文本替换为代替函数,或使用以下函数提取文本提取器。您可以将这些函数中的任何一个与字符向量或字符串数组一起使用。为了兼容,您还可以使用斯特芬德串替换使用字符向量和字符串数组。

搜索文本

使用标识字符串数组、字符向量或字符向量的单元格数组中的文本包含,开始endsWith作用

创建一个字符串。从R2017a开始,您可以使用双引号而不是一串作用

str=“罗斯玛丽·琼斯”
str=“罗斯玛丽·琼斯”

确定是否str包含子字符串玛丽这个包含函数返回一个逻辑1.如果它在字符串中的任何位置找到子字符串。

TF=包含(str,“玛丽”)
TF=必然的1.

您也可以使用斯特芬德函数查找匹配的文本。斯特芬德返回每个匹配开始的索引。在这种情况下,,斯特芬德返回5.因为M在里面玛丽第五个字是什么str.

idx=strfind(str,“玛丽”)
idx=5

使用查找多个匹配项斯特芬德.当存在多个匹配项时,斯特芬德以数组形式返回索引。

idx=strfind(str,“s”)
idx=1×23 14

创建包含多个名称的字符串数组。确定哪些名称包含子字符串这个包含函数返回具有1.无论什么地方str有一个包含。若要创建仅包含匹配项的新字符串数组,请将其索引到str具有TF.

str=[“罗斯玛丽·安·琼斯”,“彼得·迈克尔·史密斯”,“安·玛丽·杨”]
str=1x3字符串数组“罗斯玛丽·安·琼斯”“彼得·迈克尔·史密斯”“安·玛丽·杨”
TF=包含(str,“安”)
TF=1x3逻辑阵列1 0 1
匹配项=str(TF)
火柴=1x2字符串数组“罗斯玛丽·安·琼斯”“安·玛丽·杨”

查找以开头的字符串.

TF=启动时的(str,“安”);匹配项=str(TF)
matches=“安·玛丽·杨”

同样地endsWith函数查找以指定文本结尾的字符串。

您也可以使用包含,开始endsWith用于确定字符向量是否包含文本的函数。

chr=“约翰·保罗·琼斯”
chr=‘约翰·保罗·琼斯’
TF=包含(chr,“保罗”)
TF=必然的1.
TF=末端开关(chr,“保罗”)
TF=必然的0

使用包含函数查找字符串数组行中的文本。普查1905包含几行1905年的模拟人口普查数据。每一行都包含一个名字、出生年份以及该名字在该年出现的次数。

人口普查1905=[“安·玛丽”,"1905","230";“约翰”,"1905","5400";“玛丽”,"1905","4600";“玛丽简”,"1905","304";“保罗”,"1905","1206"];

查找名称等于的行玛丽.

TF=(普查1905年(:,1)==“玛丽”); 普查1905年(工作组,第
ans=1x3字符串数组“玛丽”“1905”“4600”

查找名称为的变体的行玛丽包含作用

TF=包含(人口普查1905(:,1),“玛丽”); 普查1905年(工作组,第
ans=3x3字符串数组“Ann Mary”“1905”“230”“Mary”“1905”“4600”“Mary Jane”“1905”“304”

替换文本

可以使用替换字符串数组、字符向量或字符向量的单元格数组中的文本代替作用

创建一个字符串。替换子字符串玛丽具有安妮.

str=“罗斯玛丽·琼斯”
str=“罗斯玛丽·琼斯”
newStr=替换(str,“玛丽”,“安妮”)
newStr=“Roseanne Jones”

也可以使用串替换功能。但是代替建议使用此功能。

newStr=strrep(str,“琼斯”,“一天”)
newStr=“迷迭香日”

创建包含多个名称的字符串数组。

str=[“罗斯玛丽·安·琼斯”,“彼得·迈克尔·史密斯”,“安·玛丽·杨”]
str=1x3字符串数组“罗斯玛丽·安·琼斯”“彼得·迈克尔·史密斯”“安·玛丽·杨”

指定要替换的多个名称。

旧文本=[“安”,“迈克尔”];新文本=[“贝丝”,“约翰”];newStr=replace(str、oldText、newText)
新闻记者=1x3字符串数组“Rosemary Beth Jones”“Peter John Smith”“Beth Marie Young”

替换字符向量中的文本。可以使用代替替代者使用字符向量以及字符串。

chr=“水星,双子座,阿波罗”
chr=‘水星、双子座、阿波罗’
替换(chr,“双子座”,“火星”)
ans=‘水星、火星、阿波罗’

替换文件名字符串数组中的文本。将文件名附加到网站地址。文件名包含空格,但空格不能是网站地址的一部分。替换空格字符," "具有%20,这是web地址的标准。

str=[“财务报告.docx”;“2015年季度详细信息.docx”;“幻灯片.pptx”]
str=3x1字符串数组“财务报告.docx”“2015年季度详细信息.docx”“幻灯片.pptx”
newStr=替换(str," ","%20")
新闻记者=3x1字符串数组“财务%20报告.docx”“季度%202015%20详细信息.docx”“幻灯片.pptx”

将文件名附加到网站地址。

文件名="http://example.com/Documents/"+新闻记者
文件名=3x1字符串数组"http://example.com/Documents/Financial%20Report.docx" "http://example.com/Documents/Quarterly%202015%20Details.docx" "http://example.com/Documents/Slides.pptx"

提取文本

使用从字符串数组或字符向量中提取子字符串提取器,提取前提取器函数。使用这些函数提取指定文本段之前、之后或之间的不同子字符串。

创建包含文件名的字符串数组。在C:\Temp\提取器作用

str=[“C:\Temp\MyReport.docx”;“C:\Temp\Data\Sample1.csv”;“C:\Temp\Slides.pptx”]
str=3x1字符串数组“C:\Temp\MyReport.docx”“C:\Temp\Data\Sample1.csv”“C:\Temp\Slides.pptx”
filenames=extractAfter(str,“C:\Temp\”)
文件名=3x1字符串数组“MyReport.docx”“数据\Sample1.csv”“幻灯片.pptx”

从对XML标记中的名称进行编码的字符串数组中提取客户名称。

str=[伊丽莎白日;George Adams;Sarah Young]
str=3x1字符串数组Elizabeth DayGeorge AdamsSarah Young
name=extractBetween(str,,“”)
名字=3x1字符串数组“伊丽莎白·戴”“乔治·亚当斯”“萨拉·杨”

另见

|||||||||||||

相关话题

这个话题有用吗?