String 用MATLAB脚本简化字符串

String 用MATLAB脚本简化字符串,string,matlab,simplification,String,Matlab,Simplification,我有一个字符串格式,它看起来像这样(在“\u”和数字之前不总是“a”和“number”): 如何简化字符串(使用脚本): 对我来说,最简单的方法是删除“u”之前的所有字符串,除了第一个,但我不知道如何在脚本中执行 编辑:我试过这个 Fq = regexprep(Eq, '^([A-Z]+_)(.*)', '$1\(${strrep($2,$1,'''')}\)'); 但它只删除“A_u2;”并保留“number”迭代 提前感谢您的帮助 Regexp可以完成这项工作,但我不知道如何使用它,所以我

我有一个字符串格式,它看起来像这样(在“\u”和数字之前不总是“a”和“number”):

如何简化字符串(使用脚本):

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

编辑:我试过这个

Fq = regexprep(Eq, '^([A-Z]+_)(.*)', '$1\(${strrep($2,$1,'''')}\)');
但它只删除“A_u2;”并保留“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);
使用regexp编辑:

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

从正则表达式的角度来看,“除了第一个”不是一个简单的方法。将它们全部删除,然后在一开始单独插入一个不是更简单吗?@Will:没错,而且删除可以通过
strep
轻松完成(将
A\u number\u
替换为```)。事实上,我希望在将来,要在一个包含许多不同字符串的循环中执行此操作,但@Will yes会将它们全部删除并在开始处插入字符表达式可能是一个解决方案,但为此,我需要找到一种方法将“a_number_”字符串存储在变量中,然后将其全部删除并在开始处添加。@Will我会找到如何执行此操作,谢谢!
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.*)', '$1\(${strrep($2,$1,'''')}\)');