MATLAB 帮助中心
匹配模式而不回溯
newpat = possessivePattern(pat)
newpat = possessivePattern(pat) 创建一个模式,一旦 pat 匹配,该模式就不会在 pat 内回溯。
newpat
pat
如果某字符可能与表达式中的多个模式匹配,例如数字字符与 alphanumericsPattern + digitsPattern,则可能会测试所有可能的匹配组合以尝试找到成功的匹配。此过程称为回溯。
alphanumericsPattern + digitsPattern
possessivePattern 防止回溯,因此一旦 possessivePattern 匹配,匹配的文本就不再与模式表达式的其他部分匹配,即使这导致模式无法匹配也是如此。使用 possessivePattern 通过限制为找到匹配而测试的可能模式组合来提高性能。
possessivePattern
示例
全部折叠
使用 possessivePattern,即一旦模式的主动部分匹配就不进行回溯。这将阻止模式表达式中的其他模式进行匹配。
将 txt 创建为由字母和数字字符组成的字符串。将 nonpossessive 创建为一个模式,该模式匹配符合 alphanumericsPattern 的字母或数字后跟符合 digitsPattern 的数字。alphanumericsPattern 本身匹配整个字符串,但它允许回溯,以便 digitsPattern 也能够匹配。
txt
nonpossessive
alphanumericsPattern
digitsPattern
txt = "abc123"; nonpossessive = alphanumericsPattern + digitsPattern; successfulMatch = contains(txt,nonpossessive)
successfulMatch = logical 1
将 alphanumericsPattern 设置为主动。主动模式阻止回溯,因此 alphanumericsPattern 匹配整个字符串并且不回溯以允许 digitsPattern 也匹配。此属性导致 possessive 不匹配 txt。
possessive
possessive = possessivePattern(alphanumericsPattern) + digitsPattern; unsuccessfulMatch = contains(txt,possessive)
unsuccessfulMatch = logical 0
输入模式,指定为pattern、字符串数组、字符向量或字符向量元胞数组。
pattern
数据类型: char | string | pattern | cell
char
string
cell
输出模式,以pattern或模式对象数组形式返回。
全部展开
backgroundPool
ThreadPool
在 R2020b 中推出
pattern | contains | extract | optionalPattern
contains
extract
optionalPattern
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 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处