解析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
我想将 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