首页 > 解决方案 > matlab又一个正则表达式问题

问题描述

我想匹配一个令牌,除非它完全是另一个字符串:

str ='354 : example - asd: 3, test:';
str2='354 : example2 - airplane,';
[~,tok]=regexp(str,'\d+ : (\w+) - (?(~asd)\w+)','match','tokens','once','warnings')

我想匹配airplane asd匹配,但我不知道如何使条件起作用(MathWorks 上的示例不是很有帮助)。

标签: regexmatlab

解决方案


[~,tok]=regexp(str2,'\d+ : (\w+) - (?:asd)*(\w+)*','match','tokens','once','warnings')这对我有用。

请指出是否有缺陷或更好的解决方案。感谢@Deep 指出该组但没有捕捉到可能性


推荐阅读