文档

搜索和替换文本

您可以在字符数组和字符串数组中搜索文本,并替换具有新文本的子串。R2016B引入了字符串数组和搜索文本和替换文本的新功能。搜索具有诸如功能的子串包含函数。同样地,用替换字符串中的文本代替函数,或使用如下函数提取文本extractBetween.您可以使用任何字符向量或字符串数​​组中的任何函数。为了兼容性,您还可以使用诸如此类的功能strfindstrrep具有字符向量和字符串阵列。

搜索文本

属性标识字符串数组、字符向量或字符向量的单元格数组中的文本包含以。。开始, 和endsWith函数。

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

str =“迷迭香琼斯”
str =“迷迭香琼斯”

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

tf =包含(str,“玛丽”
TF =逻辑1

你也可以用thestrfind函数查找匹配的文本。strfind返回每个匹配开始的索引。在这种情况下,strfind返回5因为玛丽第五个字符是str

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

查找多个匹配项strfind.当有多个匹配时,strfind将索引作为数组返回。

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

创建一个包含多个名称的字符串数组。确定哪些名称包含子字符串ann.这包含函数返回具有1无论str有一个元素包含ann.创建一个仅包含匹配项的新字符串数组,索引str特遣部队

str = [“罗斯玛丽安·琼斯”“彼得迈克尔史密斯”“安玛丽年轻”
str =1 x3字符串数组《罗斯玛丽·安·琼斯》《彼得·迈克尔·史密斯》《安·玛丽·杨》
tf =包含(str,“安”
TF =1x3逻辑阵列1 0 1
匹配= str (TF)
场=1 x2字符串数组“迷迭香安琼”“安马里年轻”

找到开始的字符串ann

TF = startsWith (str,“安”);匹配= str (TF)
比赛=“Ann Marie Young”

类似地,endsWith函数查找以指定文本段结束的字符串。

你也可以用the包含以。。开始, 和endsWith函数来确定字符向量是否包含文本。

空空的='John Paul Jones'
'约翰·保罗·琼斯'
TF =包含(空空的,'保罗'
TF =逻辑1
tf = endswith(chr,'保罗'
TF =逻辑0

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

census1905 = [“安玛丽”“1905”“230”“约翰。”“1905”“5400”“玛丽”“1905”“4600”“Maryjane”“1905”“304”“保罗”“1905”“1206”];

找到名称等于的行玛丽

TF = (census1905(:,1) ==“玛丽”);census1905 (TF,:)
ans =1 x3字符串数组“玛丽”“1905”“4600”

查找名称为的变体的行玛丽与之包含函数。

TF =包含(Census1905(:,1),“玛丽”);census1905 (TF,:)
ans =3 x3的字符串数组"安玛丽" "1905" "230" "玛丽" "1905" "4600" "玛丽珍" "1905" "304"

替换文本

属性替换字符串数组、字符向量或字符向量的单元格数组中的文本代替函数。

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

str =“迷迭香琼斯”
str =“迷迭香琼斯”
newStr =取代(str,“玛丽”“安妮”
"罗斯安妮·琼斯"

属性也可以替换文本strrep函数。然而,代替功能是推荐的。

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

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

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

指定要替换的多个名称。

oldtext = [“安”“迈克尔”];newText = [“贝丝”“约翰。”];newStr =取代(str的年代,newText)
newStr =1 x3字符串数组《罗斯玛丽·贝丝·琼斯》《彼得·约翰·史密斯》《贝丝·玛丽·杨》

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

空空的=“水星,双子座,阿波罗”
水星,双子座,阿波罗号
替换(Chr,'双子座'“火星”
'水星,火星,阿波罗'

将文本替换为文件名的字符串数组。将文件名附加到网站地址。文件名包含空格,但空格不能成为Web地址的一部分。替换空间字符,,% 20,这是网络地址的标准。

str = [“财务报告.DOCX”“2015季度详情.Docx”“Slides.pptx”
str =3x1字符串数组“财务报告。”“2015年季度详细信息”.DOCX“”幻灯片.PPTX“
newStr =取代(str,“%20”
newStr =3x1字符串数组“财务%20Report.docx”“”季度%202015%20details.docx“”slide.pptx“

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

文件名=“http://example.com/documents/”+ newStr
文件名=3x1字符串数组“http://example.com/documents/financial%20report.docx”“http://example.com/documents/quarterly%202015%20details.docx”“http://example.com/documents/slides.pptx“

中提取文本

从字符串阵列或字符向量中提取子字符串extractAfterextractBefore, 和extractBetween职能。使用这些函数来提取在指定的文本之间之前,遵循或发生的不同子串。

创建一个包含文件名的字符串数组。提取名称的部分C: \ Temp \与之extractAfter函数。

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 =提示(str,“c:\ temp \”
文件名=3x1字符串数组“myReport.docx”“data \ sample1.csv”“slide.pptx”

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

str = [”伊丽莎白< CustomerName > < / CustomerName >” george adams  sarah young 
str =3x1字符串数组"Elizabeth Day" "George Adams" "Sarah Young"
名称= extractBetween (str,“< / CustomerName >”
名称=3x1字符串数组“伊丽莎白日”“乔治亚当斯”“莎拉年轻”

另请参阅

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

相关话题