文档帮助中心
搜索和匹配文本的模式
一个图案定义带有文本搜索功能的匹配文本的规则包含,火柴, 和提炼.你可以建立一个模式表达式使用模式函数,运算符和文字文本。例如,Matlab®发布名称,开始“r”,然后是四位数年份,然后是任意一个年份“一种”要么“b”.定义模式以匹配发布名称的格式:
包含
火柴
提炼
“r”
“一种”
“b”
帕特=“r”+ digitpattern (4) + (“一种”|“b”);
匹配字符串中的模式:
str = [“String在R2016b中被引入。”“在R2020B中添加了模式。”];提取物(str,pat)
ANS = 2x1字符串阵列“R2016B”“R2020B”
模式由文字文本和其他使用+,|, 和~操作符。您还可以使用对象的功能,通常与正则表达式关联的规则:
+
|
~
匹配字符模式- 字母或数字,通配符或白板等范围,例如lettersPattern.
lettersPattern
搜索规则- 必须发生的模式,差别敏感性,可选模式和命名表达式,如可选的花attn..
可选的花attn.
界限- 特定字符运行的开始或结尾的边界,例如AlphanumericBoundary..可以使用边界模式使用~操作员,以便与边界匹配可防止其模式表达式的匹配。
AlphanumericBoundary.
模式组织—定义模式结构,指定模式表达式的显示方式,例如maskedPattern和namedPattern.
maskedPattern
namedPattern
功能图案还使用语法创建模式函数,Pat =模式(TXT), 在哪里文本是字面文本帕特火柴。模式函数对于指定函数参数验证的模式类型很有用。然而图案其他情况很少需要函数,因为Matlab文本匹配函数接受文本输入。
图案
Pat =模式(TXT)
文本
帕特
展开全部
数
endsWith
以。。开始
代替
替换
分裂
擦拭
eraseBetween
提取物
extractBefore
摘录
internawter.
方法
digitspattern.
alphanumericspattern.
characterListPattern
whitespacePattern
wildcardPattern
占有的
CASENSITYPATTERN.
酪蛋白塞的术术
AsfewofPattern.
AsmanyofPattern.
DigitBoundary.
贝福克
空白空白
lineBoundary
TextBeintary.
lookAheadBoundary
lookbehindboundary.
regexpPattern
全部折叠
lettersPattern是一个匹配字符字符的典型字符匹配模式。创建与一个或多个字母字符匹配的模式。
txt = [“这”“是”“1x6”“字符串”“数组”“。”];Pat = Letterspattern;
使用包含确定字符是否匹配帕特存在于每个字符串中。输出逻辑阵列显示第一个字符串中文本包含字母,但第六个字符串不包含。
包含(txt,pat)
ans =1x6逻辑阵列1 1 1 1 1 0
确定文本是否以指定的模式开始。输出逻辑数组显示了其中的四个字符串文本从字母开始,但两个字符串不要。
Startswith(TXT,PAT)
ans =1x6逻辑阵列1 1 0 1 1 0
确定字符串是否完全匹配指定的模式。输出逻辑数组显示输入的字符串文本除了字母中没有任何东西。
匹配(txt,帕特)
ans =1x6逻辑阵列1 0 0 1 1 0
计算模式匹配的模式的次数。输出数字阵列显示了多少次lettersPattern的每个元素匹配文本.注意lettersPattern匹配一个或多个字母,因此一组并发字母是单个匹配。
帕特计数(txt)
ans =1×6.1 2 1 1 10 0
digitspattern.是匹配数字字符的典型字符匹配模式。创建匹配数字字符的模式。
txt = [“1条鱼”“2条鱼”“[1,0,0]鱼”“[0,0,1]鱼”];帕特= digitsPattern;
使用代替编辑与模式匹配的文本部分。
替换(TXT,PAT,“#”)
ans =1x4字符串“#鱼”“#鱼”“[#,#,#]鱼”“[#,#,#]鱼”
通过插入一个新的文本“!”匹配字母后的字符。
“!”
inersionAdter(TXT,PAT,“!”)
ans =1x4字符串“1 !鱼”“2 !鱼”“(0 0 1 ! ! !鱼”“[0!,0!,1!] fish"
可以使用OR操作符创建模式,|与文本。擦除指定模式匹配的文本。
txt =擦除(txt,”、“|“]”|“[”)
txt =1x4字符串“1鱼”“2鱼”“100鱼”“001鱼”
提取帕特来自新文本。
提取物(TXT,PAT)
ans =1x4字符串“1”“2”“100”“001”
使用模式来计算文本中单个字符的出现次数。
txt =“她在海岸卖海贝壳。”;
创建帕特作为一个图案匹配单个字母使用的对象alphanumericspattern..提取模式。
帕特= alphanumericsPattern (1);信=提取(txt,帕特);
显示每个字母出现次数的直方图。
信=低(字母);信=分类(字母);直方图(字母)
使用maskedPattern显示变量代替复杂的模式表达式。
构建匹配由数字和算术运算符组成的简单算术表达式的模式。
mathsymbols = asmanyofpattern(digitspattern | characterlistpattern(“+ - * / = "),1)
mathsymbols =.图案匹配:asManyOfPattern(digitpattern | characterListPattern("+-*/="),1)
构建一个与字符之间的空格匹配算术表达式的模式arthmeticpat.
arthmeticpat
longExpressionPat = asManyOfPattern(mathSymbols + whitespacpattern) + mathSymbols . longExpressionPat = asManyOfPattern(mathSymbols + whitespacpattern) + mathSymbols
longexpressionpat =图案匹配:AsmanyofPattern(AsmanyofPattern(DigitsPattern | CharactListPattern(“+ - * / =”),1)+ WhiteSpacePattern)+ AsManyofPattern(DigitsPattern | CharactListPattern(“+ - * / =”),1)
显示的模式表达式很长,很难阅读。使用maskedPattern要显示变量名称,mathsymbols.,代替模式表达。
mathsymbols.
mathsymbols = maskedpattern(mathsymbols);ShortexcressionPat = AsmanyofPattern(Mathsymbols + WhiteSpacePattern)+ Mathsymbols
shortexcressionPat =图案匹配:AsmanyofPattern(Mathsymbols + WhiteSpacePattern)+ Mathsymbols显示所有细节
创建一个包含一些算术表达式的字符串,然后从文本中提取模式。
txt =“1 + 1的答案是什么?哦,我知道!1 + 1 = 2!”;算法=提取物(TXT,ShortexcressionPat)
算术=2x1字符串“1 + 1”1 + 1 = 2“
创建来自两个命名模式的模式。命名模式将上下文添加到模式的显示。
构建两个模式:与字母D开始和结尾的单词匹配的一个模式,以及与字母R开始和结尾的单词匹配的单词。
dwordspat = letterboundary + caseInsensentpattern(“D”+ lettersPattern +“D”) + letterBoundary;rword啐=字母边界+ caseinsensitivpattern (“r”+ lettersPattern +“r”) + letterBoundary;
使用命名模式构建模式,该模式以d启动和结尾的单词,然后用R开始和结尾的单词。
ddrword啐= dword啐+ whitespacpattern + rword啐
Dandrwordspat =图案匹配:LetterBoundary + SutaseInsissityPattern(“D”+ Letterspattern +“D”)+ LetterBoundary + WhiteSpacePattern + LetterBoundary + SutaseInsensityPattern(“R”+ Letterspattern +“R”)+ LetterBoundary
这种模式很难读取,并没有传达有关其目的的许多信息。使用namedPattern将模式指定为显示指定名称和描述代替模式表达式的命名模式。
dWordsPat = namedPattern (dWordsPat,“dword”,“用D开始和结束的词语”);rindspat = namedpattern(rindspat,“rwords”,以R开头和结尾的单词);ddrword啐= dword啐+ whitespacpattern + rword啐
Dandrwordspat =图案匹配:使用命名模式的DWORDS + WHITESPACEPTN + ROWNS:DWORDS:用D ROMDS开始和结尾的单词:用R开始和结束的单词显示更多细节
创建一个字符串并提取与模式匹配的文本。
txt =“爸爸,看那条分开的河!”;单词=提取物(txt,dandromwordspat)
单词=“divide河”
构建一个易于阅读的模式来匹配电子邮件地址。
电子邮件地址遵循结构userename@domain.tld., 在哪里userename.和域由由周期分开的标识符组成。构建与由任何字母数字字符组合组成的标识符匹配的模式“_”人物。使用maskedPattern为这个模式命名标识符.
“_”
标识符
标识符= AsManyofPattern(AlphanumericsPattern(1)|“_”1);标识符= maskedPattern(标识符);
构建模式以匹配由标识符组成的域和子域。创建一个与指定列表匹配的模式。
子域= asmanyofpattern(标识符+“。”)+标识符;domainname = namedpattern(标识符,“domainname”);tld =“com”|“org”|“GOV”|“网”|“edu”;
构建用于匹配的电子邮件的本地部分的模式,它匹配一个或多个由周期分隔的标识符。通过组合先前定义的模式构建用于匹配域,TLD和任何潜在子域的模式。使用namedPattern将每个模式分配给命名模式。
用户名= asManyOfPattern(标识符+“。”)+标识符;Domain =可选型Pattern(NamePattern(子域)+“。”)+......domainname +“。”+......namedpattern(tld);
将所有模式组合成单个模式表达式。使用namedPattern分配用户名,域, 和emailPattern命名模式。
用户名
域
emailPattern
EmailAddress = namepattern(用户名)+“@”+ namedpattern(域);EmailPattern = NamePattern(EmailAddress)
emailPattern =图案匹配EmailAddress:用户名+“@”+域使用命名模式:EmailAddress:Username +“@”+域用户名:AsManyofPattern(标识符+“。”)+标识符域:可选托盘(子域+“。)+ domainname +”。“+ TLD子域:AsManyofPattern(标识符+“。”)+标识符DomainName:标识符TLD:“com”|“org”|“GOV”|“网”|“edu”显示所有细节
创建包含电子邮件地址的字符串,然后从文本中提取模式。
txt =“你可以通过电子邮件在John.Smith@department.Organization.org”;提取(txt emailPattern)
ans = " John.Smith@department.organization.org "
命名模式允许点索引以访问命名为子模式。使用点索引为命名模式分配特定值域.
EmailPattern.emailAddress.domain =.“mathworks.com”
emailPattern =图案匹配EmailAddress:用户名+“@”+域使用命名模式:EmailAddress:UserName +“@”+域用户名:AsManyofPattern(标识符+“。”)+标识符域:“mathworks.com”显示所有详细信息
包含|数|提炼|火柴|正则表达式|代替|strfind|细绳
正则表达式
strfind
细绳
系统上存在此示例的修改版本。你想打开这个版本吗?
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系您当地的办公室