您可以在字符数组和字符串数组中搜索文本,并使用新文本替换子字符串。R2016b中引入了字符串数组以及用于搜索和替换文本的新函数。使用诸如包含
类似地,将字符串中的文本替换为代替
函数,或使用如下函数提取文本extractBetween
。您可以将这些函数中的任何一个与字符向量或字符串数组一起使用。为了兼容,您还可以使用strfind
和strrep
使用字符向量和字符串数组。
属性标识字符串数组、字符向量或字符向量的单元格数组中的文本包含
,开始
,及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
创建一个包含多个名称的字符串数组。确定哪些名称包含子字符串安
这个包含
函数返回具有1
无论str
有一个元素包含安
。若要创建仅包含匹配项的新字符串数组,请将其索引到str
与特遣部队
.
str=[“罗斯玛丽安·琼斯”,“彼得·迈克尔·史密斯”,“安玛丽年轻”]
str =1 x3字符串数组《罗斯玛丽·安·琼斯》《彼得·迈克尔·史密斯》《安·玛丽·杨》
TF=包含(str,“安”)
TF =1x3逻辑阵列1 0 1
匹配= str (TF)
场=1 x2字符串数组“罗斯玛丽·安·琼斯”“安·玛丽·杨”
查找以开头的字符串安
.
TF = startsWith (str,“安”);匹配= str (TF)
matches=“安·玛丽·杨”
类似地,endsWith
函数查找以指定文本段结束的字符串。
你也可以用the包含
,开始
,及endsWith
函数来确定字符向量是否包含文本。
空空的=“约翰·保罗·琼斯”
'约翰·保罗·琼斯'
TF =包含(空空的,“保罗”)
TF =逻辑1
TF=末端开关(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=包含(人口普查1905(:,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字符串数组《罗斯玛丽·安·琼斯》《彼得·迈克尔·史密斯》《安·玛丽·杨》
指定要替换的多个名称。
旧文本=[“安”,“迈克尔”];newText = [“贝丝”,“约翰。”];newStr =取代(str的年代,newText)
newStr =1 x3字符串数组《罗斯玛丽·贝丝·琼斯》《彼得·约翰·史密斯》《贝丝·玛丽·杨》
替换字符向量中的文本。可以使用代替
和替代者
使用字符向量以及字符串。
空空的=“水星,双子座,阿波罗”
水星,双子座,阿波罗号
替换(chr,“双子座”,“火星”)
'水星,火星,阿波罗'
替换文件名字符串数组中的文本。将文件名附加到网站地址。文件名包含空格,但空格不能是网站地址的一部分。替换空格字符," "
,% 20
,这是网络地址的标准。
str=[“财务报告.docx”;“2015年季度详细信息.docx”;“Slides.pptx”]
str =3x1字符串数组“财务报告.docx”“2015年季度详细信息.docx”“幻灯片.pptx”
newStr =取代(str," ","%20")
newStr =3x1字符串数组“财务%20报告.docx”“季度%202015%20详细信息.docx”“幻灯片.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"
使用从字符串数组或字符向量中提取子字符串extractAfter
,extractBefore
,及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=extractAfter(str,“C:\Temp\”)
文件名=3x1字符串数组“MyReport.docx”“数据\Sample1.csv”“幻灯片.pptx”
从对XML标记中的名称进行编码的字符串数组中提取客户名称。
str=[”伊丽莎白< CustomerName > < / CustomerName >”;“George Adams ”;“Sarah Young ”]
str =3x1字符串数组"Elizabeth Day " "George Adams " "Sarah Young "
名称= extractBetween (str,“” ,“< / CustomerName >”)
名字=3x1字符串数组“伊丽莎白·戴”“乔治·亚当斯”“萨拉·杨”
包含
|endsWith
|擦除
|eraseBetween
|extractAfter
|extractBefore
|extractBetween
|insertAfter
|方法
|代替
|替代者
|开始
|strfind
|strrep