我有一个字符串s
,它由用户输入的随机符号和数字组成。
每个字母(大写或小写)应重复以下数字指示的次数。
%% 'x234' - 'xx34'
%% 'xx3333' - 'xxxx333' etc.
s = 'M2ab34*y2'
字符串s1
应为:
s1='MMabbb4*yy'
我希望你明白我的意思。
答案 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以获取替换字符串(使用repmat
和str2double
复制字符)。
如果您只想复制字母(而非*
之类的符号),则可以使用'([a-zA-Z])(\d)'
作为匹配表达式。