使用 MATLAB 脚本简化字符串

Simplify a string with MATLAB script

我有一个字符串格式,看起来像这样(在'_'和数字之前并不总是 'A' 和 'number'):

Eq = 'A_number_1+((A_number_2+A_number_3)&(A_number_+A_number_5))+A_number_6';

我怎样才能像这样简化字符串(使用脚本):

Eq = 'A_number_(1+((2+3)&(4+5))+6)'

对我来说,最简单的方法是删除“_”之前的所有字符串,第一个字符串除外,但我不知道如何在脚本中执行此操作。

编辑:我试过了

Fq = regexprep(Eq, '^([A-Z]+_)(.*)', '\(${strrep(,,'''')}\)');

但它仅删除 'A_' 并保留 'number' 次迭代。

提前感谢您的帮助!

Regexp 可以完成这项工作,但我不知道如何使用它,所以我这样做了 :

A = 'A_number_1+((A_number_2+A_number_3)&(A_number_+A_number_5))+A_number_6';
CR_string = '';
for i=1:length(A)
    if A(i) == '('
    else
        if str2double(A(i)) == 1
            break;
        else
            CR_string = strcat(CR_string, A(i));
        end
    end
end
A = erase(A, CR_string);
A = strcat(CR_string, '(', A, ')');
disp(A);

使用正则表达式编辑:

NewStr = regexprep(Str, '^(\w+?)(\d+\W.*)', '\(${strrep(,,'''')}\)');