maskedPattern
具有指定显示名称的模式
说明
示例
使用 maskedPattern 显示变量来代替复杂的模式表达式。
构建一个模式,该模式匹配由数字和算术运算符组成的简单算术表达式。
mathSymbols = asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)mathSymbols = pattern
Matching:
asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
使用 mathSymbols 构建一个模式,该模式匹配在字符之间具有空白的算术表达式。
longExpressionPat = asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
longExpressionPat = pattern
Matching:
asManyOfPattern(asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1) + whitespacePattern) + asManyOfPattern(digitsPattern | characterListPattern("+-*/="),1)
显示的模式表达式很长且难以阅读。使用 maskedPattern 显示变量名称 mathSymbols 来代替模式表达式。
mathSymbols = maskedPattern(mathSymbols); shortExpressionPat = asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
shortExpressionPat = pattern
Matching:
asManyOfPattern(mathSymbols + whitespacePattern) + mathSymbols
Show all details
创建一个包含一些算术表达式的字符串,然后从文本中提取模式。
txt = "What is the answer to 1 + 1? Oh, I know! 1 + 1 = 2!";
arithmetic = extract(txt,shortExpressionPat)arithmetic = 2×1 string
"1 + 1"
"1 + 1 = 2"
使用 maskedPattern 显示复杂模式表达式的指定名称。
构建两个模式:一个模式匹配以字母 D 开头和结尾的单词,另一个模式匹配以字母 R 开头和结尾的单词。
dWordsPat = letterBoundary + caseInsensitivePattern("d" + lettersPattern + "d") + letterBoundary; rWordsPat = letterBoundary + caseInsensitivePattern("r" + lettersPattern + "r") + letterBoundary;
使用 maskedPattern 显示指定的名称来代替模式表达式。使用掩码模式构建一个模式,掩码模式查找以 D 开头和结尾的单词后跟以 R 开头和结尾的单词。
dWordsPat = maskedPattern(dWordsPat,"Words that start and end with D"); rWordsPat = maskedPattern(rWordsPat,"Words that start and end with R"); dAndRWordsPat = dWordsPat + whitespacePattern + rWordsPat
dAndRWordsPat = pattern
Matching:
Words that start and end with D + whitespacePattern + Words that start and end with R
Show all details
创建一个字符串,然后从文本中提取与模式匹配的字符。
txt = "Dad, look at the divided river!";
words = extract(txt,dAndRWordsPat)words = "divided river"
创建自定义模式函数并使用 maskedPattern 隐藏细节。
创建函数 atLeastOneOfPattern,该函数接受输入模式 pat 并创建模式 newPat,该模式匹配 pat 的一个或多个连续实例。使用 maskedPattern 隐藏所显示模式的细节。
function newPat = atLeastOneOfPattern(pat) arguments pat pattern end newPat = asManyOfPattern(pat,1); newPat = maskedPattern(newPat,compose("atLeastOneOfPattern(%s)",pat)); end
使用输入 "a" 调用 atLeastOneOfPattern 并显示 newPat。
newPat = atLeastOneOfPattern("a")newPat =
pattern
Matching:
atLeastOneOfPattern("a")
Show all details
使用 characterListPattern 创建模式 hexDigit,该模式匹配 0-9 范围的数字字符和 a-f 范围的字母。由于 characterListPattern 区分大小写,请使用 caseInsensitivePattern 以使 hexDigit 在匹配时不区分字符的大小写。
hexDigit = characterListPattern('0','9') | characterListPattern('a','f'); hexDigit = caseInsensitivePattern(hexDigit); hexDigit = maskedPattern(hexDigit)
hexDigit = pattern
Matching:
hexDigit
Show all details
hexDigit 匹配十六进制数的单个数字。通过构建一个模式来匹配完整的十六进制数,该模式匹配字面文本 "0x" 后跟一个或多个出现的 hexDigit 实例。
hexNumberPattern = "0x" + asManyOfPattern(hexDigit, 1)hexNumberPattern = pattern
Matching:
"0x" + asManyOfPattern(hexDigit,1)
Show all details
使用此模式从字符串中提取十六进制数。
hexNumbers = extract("The answer is 0x2A", hexNumberPattern)hexNumbers = "0x2A"
输入参数
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。
版本历史记录
在 R2020b 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)