我如何在MATLAB中执行此操作?

时间:2017-06-05 19:57:59

标签: string matlab

我有一个字符串s,它由用户输入的随机符号和数字组成。

每个字母(大写或小写)应重复以下数字指示的次数。

%% 'x234'   - 'xx34'  
%% 'xx3333' - 'xxxx333' etc.

s = 'M2ab34*y2'

字符串s1应为:

s1='MMabbb4*yy'

我希望你明白我的意思。

1 个答案:

答案 0 :(得分:3)

您可以使用regexprep执行此操作:

s = 'M2ab34*y2';
s1 = regexprep(s, '(\D)(\d)', '${repmat($1, [1 str2double($2)])}')

s1 =

MMabbb4*yy

'(\D)(\d)'将匹配单个non-numeric digit character,后跟单个numeric digit character。每个字符都在token中捕获,然后传递给dynamic expression以获取替换字符串(使用repmatstr2double复制字符)。

如果您只想复制字母(而非*之类的符号),则可以使用'([a-zA-Z])(\d)'作为匹配表达式。