解析KEGG信息

parsing KEGG information

我想将 Matlab 中的表达式索引到 return 只有第一个参数

new_mets{i}=strsplit(mets{j},' (');
ans  = 
'Anteisopentadecanoylcardiolipin'    'B. subtilis)'

像这样:

new_mets{i}=strsplit(mets{j},' (')(1);
ans  = 
'Anteisopentadecanoylcardiolipin'

但我得到:

Error: ()-indexing must appear last in an index expression

当然我可以先将它保存为变量,然后再索引,但这样效率低下,肯定有更简单的方法

您可以使用正则表达式只获取第一部分:

new_mets{i} = regexp(mets{j}, '^.+(?= \()', 'match');

示例:

>> regexp('aaa (bb)', '^.+(?= \()', 'match')
ans = 
    'aaa'

另一种方法:

ind = strfind(mets{j}, ' ('); %// find starting indices of matches
new_mets{i} = mets{1}(1:ind(1)-1); %// take substring previous to first match