如何在元胞数组中查找子字符串

How to find a substring in a cell array

我正在尝试在 MATLAB 中使用正则表达式在元胞数组的字符串中搜索两个单词。我的元胞数组包含

strings={'1abc_2def_ghi_AB_12A','1abc_2def_ghi_BD_19A','1abc_2def_ghi_CD_16A',}

我将如何构建表达式以在元胞数组中搜索同时包含 'ghi''12' 的字符串?

在此先感谢您的帮助。

这个怎么样?

result = find(~cellfun(@isempty, regexp(strings, 'ghi')) & ...
    ~cellfun(@isempty, regexp(strings, 'AB')));

或者,使用单个正则表达式,

result = find(~cellfun(@isempty, regexp(strings, '(ghi.*AB|ghi.*AB)')));