如何在matlab中删除字符串中的多个子字符串



我正在尝试以不同的方式实现我已经可以实现的一些自定义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

相关内容

  • 没有找到相关文章

最新更新