我正在使用Matlabs正则表达式函数regexprep()来查找和替换.c文件中的字符串 我一直在尝试在.c文件中使用以下字符串:
var[12] = powmacro(var[11],"name11",var[25],"name25");
var[13] = divmacro(var[23],"name23",var[12],"name12");
...并将它们转换为以下格式:
var[12] = var[11]^var[25]
var[13] = var[23]/var[12]
关于我如何做到这一点的任何想法?
答案 0 :(得分:0)
以下是一个示例代码:
% regular expression patterns
re_sp = '\s*';
re_str = [re_sp '"[^"]*"' re_sp];
re_var = [re_sp '(var\[\d+\])' re_sp];
re_pow = [re_var '=' re_sp 'powmacro' re_sp '\(' ...
re_var ',' re_str ',' re_var ',' re_str ')' re_sp ';'];
re_div = [re_var '=' re_sp 'divmacro' re_sp '\(' ...
re_var ',' re_str ',' re_var ',' re_str ')' re_sp ';'];
% replace patterns in strings
str = {'var[12] = powmacro(var[11],"name11",var[25],"name25");' ;
'var[13] = divmacro(var[23],"name23",var[12],"name12");'};
str = regexprep(str, re_pow, '$1 = $2 ^ $3');
str = regexprep(str, re_div, '$1 = $2 / $3');
disp(str)
结果:
>> str
str =
'var[12] = var[11] ^ var[25]'
'var[13] = var[23] / var[12]'