您可以在字符数组和字符串数组中搜索文本,并使用新文本替换子字符串。在R2016b中引入了字符串数组和用于搜索和替换文本的新函数。方法等函数搜索子字符串包含
函数。类似地,将字符串中的文本替换为取代
用的功能,例如功能,或提取文本extractBetween
。您可以将这些函数中的任何一个与字符向量或字符串数组一起使用。为了兼容性,您还可以使用诸如此类的函数strfind
和strrep
包括字符向量和字符串数组。
识别字符串数组,字符向量,或与字符向量的单元阵列文本包含
,startsWith
,以。。结束
函数。
创建一个字符串。在R2017a开始,您可以创建一个使用双引号的字符串。
海峡=“琼斯迷迭香”
"罗斯玛丽·琼斯"
确定是否海峡
包含子玛丽
。的包含
函数返回一个逻辑1
如果它发现子字符串在字符串中的任何位置。
TF =包含(str,“玛丽”)
TF =合乎逻辑1
您也可以使用strfind
功能查找匹配的文本。strfind
返回每场比赛开始的索引。在这种情况下,strfind
回报五
因为米
在玛丽
是的第五个字符海峡
。
IDX = strfind(STR,“玛丽”)
IDX = 5
找到多个匹配strfind
。当有多个匹配,strfind
以数组的形式返回索引。
IDX = strfind(STR,“s”)
IDX =1×23月14日
创建一个包含许多名称的字符串数组。确定哪些名称包含子安
。的包含
函数返回具有一个逻辑阵列1
哪里海峡
具有包含元件安
。若要创建只包含匹配项的新字符串数组,请将索引放入海峡
同TF
。
str = [“迷迭香安·琼斯”,“彼得·迈克尔·史密斯”,“安玛丽年轻”]
海峡=1 x3字符串“迷迭香安·琼斯”,“彼得·史密斯迈克尔”,“安玛丽年轻”
TF =包含(str,“安”)
TF =1 x3逻辑阵列1 0 1
匹配= STR(TF)
比赛=1×2串"罗斯玛丽·安·琼斯" "安·玛丽·杨"
找到开始的字符串安
。
TF = startsWith(STR,“安”);匹配= STR(TF)
匹配= "Ann Marie Young"
同样的,以。。结束
函数查找字符串结束与指定的一段文字。
您也可以使用包含
,startsWith
,以。。结束
函数来确定特征向量中是否包含文本。
CHR =“约翰·保罗·琼斯”
CHR =“约翰·保罗·琼斯”
TF =含有(CHR,“保罗”)
TF =合乎逻辑1
TF =的endsWith(CHR,“保罗”)
TF =合乎逻辑0
使用包含
功能找到一个字符串数组的行中的文本。census1905
包含了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×3串“安玛丽”, “1905”, “230”, “玛丽”, “1905”, “4600”, “Maryjane”, “1905”, “304”
您可以在字符串数组,特征向量,或与特征向量单元阵列替换文本取代
函数。
创建一个字符串。替换字符串玛丽
同安妮
。
海峡=“琼斯迷迭香”
"罗斯玛丽·琼斯"
=中newstr替换(STR,“玛丽”,“安妮”)
中newstr =“罗丝安妮琼斯”
您也可以使用替换文本strrep
函数。然而取代
建议功能。
=中newstr strrep(STR,“琼斯”,“天”)
中newstr =“迷迭香日”
创建一个包含许多名称的字符串数组。
str = [“迷迭香安·琼斯”,“彼得·迈克尔·史密斯”,“安玛丽年轻”]
海峡=1 x3字符串“迷迭香安·琼斯”,“彼得·史密斯迈克尔”,“安玛丽年轻”
指定多个名称来代替。
年代= [“安”,“迈克尔”]。newText = [“贝丝”,“约翰”]。=中newstr替换(STR,oldText,newText)
=中newstr1 x3字符串“迷迭香贝丝·琼斯”,“彼得·约翰·史密斯”,“玛丽·贝丝青年”
替换字符向量中的文本。您可以使用取代
和replaceBetween
用字符向量,也用字符串。
CHR =“水星,双子星,阿波罗”
CHR ='水星,双子,阿波罗
替换(空空的,“双子座”,'火星')
ANS ='水星,火星,阿波罗
替换文件名字符串数组中的文本。将文件名附加到网站的地址。文件名包含空格,但空格不能是web地址的一部分。替换空格字符," "
与%20
,这是Web地址的标准。
str = [“金融Report.docx”;“季度2015 Details.docx”;“Slides.pptx”]
海峡=3X1线“金融Report.docx”“季度2015 Details.docx”“Slides.pptx”
=中newstr替换(STR," ",“% 20”)
=中newstr3X1线“金融% 20报告。多克斯”“季度202015% % 20的细节。多克斯Slides.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 \数据\ Sample1.csv”;“C:\ TEMP \ Slides.pptx”]
海峡=3X1线“C:\ TEMP \ MyReport.docx” “C:\ TEMP \数据\ Sample1.csv” “C:\ TEMP \ Slides.pptx”
文件名= extractAfter (str,“C: \ Temp \”)
文件名=3X1线“MyReport。多克斯\ Sample1”数据。csv Slides.pptx”
提取一个字符串数组编码XML标记内的名客户名称。
str = [“<客户>伊丽莎白日客户名称>”;“< CustomerName >乔治·亚当斯< / CustomerName >”;”莎拉< CustomerName >年轻< / CustomerName >”]
海峡=3X1线“<客户>伊丽莎白日客户名称>”, “<客户>乔治亚当斯客户名称>”, “<客户>萨拉杨客户名称>”
名称= extractBetween(STR,“< CustomerName >”,“客户名称>”)
名称=3X1线"伊丽莎白·戴" "乔治·亚当斯" "莎拉·杨"
包含
|以。。结束
|擦除
|eraseBetween
|extractAfter
|extractBefore
|extractBetween
|insertAfter
|的insertBefore
|取代
|replaceBetween
|startsWith
|strfind
|strrep