我正在尝试以不同的方式实现我已经可以实现的一些自定义matlab函数。让我们假设有这个字符串"AAAAAAAAAAA aaaaaaaaaa TTTTTTTTTT sssssssss TTTTTTTTPTT"我知道用删除每个小写子字符串
regexprep(String, '[a-z]*', '')
但由于我想了解如何获取这些子字符串的索引,并使用它们进行检查和删除,也许可以使用for循环,我正在研究如何做到这一点。Regexp给出索引:
[Start,End] = regexp(Seq,'[a-z]{1,}');
但我没有成功地弄清楚如何使用它们来检查这些序列并消除它们。
使用索引方法可以获得多个开始索引和结束索引(在示例中为两个(,因此需要循环从字符串中删除相应的部分。您应该从最后一个到第一个删除它们,否则尚未使用的索引将在删除部分时失效:
x = 'AAAAAAAAAAAaaaaaaaaaaaTTTTTTTTTTTTTTTTsssssssssssTTTTTTTTTT'; % input
y = x; % initiallize result
[Start, End] = regexp(x, '[a-z]{1,}');
for k = numel(Start):-1:1 % note: from last to first
y(Start(k):End(k)) = []; % remove section
end