我需要搜索一个单元格数组并返回一个布尔值,指示是否有任何单元格与正则表达式匹配。
例如,假设我想知道元胞数组是否strs
包含foo
or -foo
(不区分大小写)。我需要传递给 regexpi 的正则表达式是^-?foo$
.
样本输入:
strs={'a','b'}
% 结果为 0
strs={'a','foo'}
% 结果为 1
strs={'a','-FOO'}
% 结果为 1
strs={'a','food'}
% 结果为 0
我想出了以下基于如何在 matlab 的 ismember 函数中实现通配符的解决方案?并使用 regex 搜索单元数组,但似乎我应该能够简化它:
~isempty(find(~cellfun('isempty', regexpi(strs, '^-?foo$'))))
我遇到的问题是,对于这样一个简单的操作,它看起来相当神秘。有没有更简单、更易读的表达式来实现相同的结果?