【问题标题】:How can I delete all the char如何删除所有字符
【发布时间】:2023-03-27 22:48:01
【问题描述】:
Input ={'AABCDA';'AABDCA';'AACBDA';'AACDBA';'AADBCA';'AADCBA';'ABACDA';'ABADCA';'ABCADA';
'ABCDAA';'ABDACA';'ABDCAA';'ACABDA';'ACADBA';'ACBADA';'ACBDAA';'ACDABA';'ACDBAA';'ADABCA';'ADACBA';'ADBACA';'ADBCAA';'ADCABA';'ADCBAA'}

如何删除所有字符 (A) 并只在 Input 的开头保留一个字符 (A) 和末尾的一个字符 (A)?预期的输出应该是这样的:

Input ={'ABCDA';'ABDCA';'ACBDA';'ACDBA';'ADBCA';'ADCBA';'ABCDA';'ABDCA';'ABCDA';
'ABCDA';'ABDCA';'ABDCA';'ACBDA';'ACDBA';'ACBDA';'ACBDA';'ACDBA';'ACDBA';'ADBCA';
'ADCBA';'ADBCA';'ADBCA';'ADCBA';'ADCBA'}

【问题讨论】:

    标签: string matlab char


    【解决方案1】:

    您可以应用regexprep,使用带有negative lookahead and lookbehind 的正则表达式:

    Output = regexprep(Input, '(?<!^)A(?!$)', '');
    

    【讨论】:

      【解决方案2】:

      如果您只需要担心成对的 A,replace(Inputs,'AA','A') 就可以了。

      【讨论】:

      • 不是“替换”而是“strrep”(字符串repLACE)
      • replace 自 16b 以来一直存在。 mathworks.com/help/matlab/ref/replace.html
      • 对不起。我使用的是旧版本。
      • 别担心!我会说 replace 有更健全的矢量化行为,所以如果你有它,它是值得使用的。使用字符串,它也比 char 上的 strrep 更快。
      • 从 OP 的示例中,很明显要删除的 A 并不总是与另一个 A 成对出现,所以恐怕这并不能回答她的问题跨度>
      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 2012-06-16
      • 2020-02-25
      • 1970-01-01
      • 2015-12-02
      • 2022-01-03
      • 2018-03-04
      • 1970-01-01
      相关资源
      最近更新 更多