【问题标题】:How to remove several substring within a string in matlab?如何在matlab中删除字符串中的多个子字符串?
【发布时间】:2020-07-20 12:44:41
【问题描述】:

我正在尝试以不同的方式实现我已经可以实现的一些自定义 matlab 函数。让我们假设有这个字符串 'AAAAAAAAAAAAAAAaaaaaaaaaaaTTTTTTTTTTTTTTTTsssssssssssTTTTTTTTTT' 我知道要删除每个小写子字符串

regexprep(String, '[a-z]*', '')

但由于我想了解如何获取这些子字符串的索引并使用它们来检查它们并可能使用 for 循环删除它们,所以我正在研究如何做到这一点。 正则表达式给出索引:

 [Start,End] = regexp(Seq,'[a-z]{1,}');

但我没有成功弄清楚如何使用它们来检查这些序列并消除它们。

【问题讨论】:

    标签: string matlab


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-30
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2020-01-22
      相关资源
      最近更新 更多