搜索并替换文本

您可以在字符数组和字符串数组中搜索文本,并使用新文本替换子字符串。在R2016b中引入了字符串数组和用于搜索和替换文本的新函数。方法等函数搜索子字符串包含函数。类似地,将字符串中的文本替换为取代用的功能,例如功能,或提取文本extractBetween。您可以将这些函数中的任何一个与字符向量或字符串数组一起使用。为了兼容性,您还可以使用诸如此类的函数strfindstrrep包括字符向量和字符串数组。

搜索文本

识别字符串数组,字符向量,或与字符向量的单元阵列文本包含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”

提取文本

方法从字符串数组或字符向量中提取子字符串extractAfterextractBefore,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线"伊丽莎白·戴" "乔治·亚当斯" "莎拉·杨"

也可以看看

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

相关的话题