MATLAB: Reuse parts of the matching expression as replace string

cellfunMATLABregexpregexprepregular expressions

Hello,
I stuck in the usage of the regexprep() function and hope sb. can point me to the correct solution.
myarray = {'ABC 500mm';'DEF 3mm';'GHI 0.1mm'};
output = cellfun(@(myarray) regexprep(myarray,'\d*+mm','${regexp($0,''\d*'',''match'')}'),myarray, 'UniformOutput',false);
This 'solution' sadly produces an error as it states that the replacement string does not output a real string to use here. What I try to do is pretty simple – erase all occurrences of 'mm' when found after a number.
Many thanks!

Best Answer

myarray = {'ABC 500mm';'DEF 3mm';'GHI 0.1mm';'3mmm'};
regexprep(myarray,'(\d)mm','$1')
Explained:
capture a token () for any digit \d followed by mm. Replace whole expression with the token (i.e. the digit).
Also the regexp* family of functions can work on cellstr arrays :)