How to use regexprep to modify strings while keeping constituent numbers intact?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Aryan Ritwajeet Jha
am 10 Jun. 2022
Kommentiert: Voss
am 10 Jun. 2022
I have a cell array of strings:
str = {'$d(V_1)$', ...
'$d(V_2)$', ...
'$d(V_3)$'}
I wish to convert the cell array of strings into:
strDesired = {'$function(a_{d(V_1)})$', ...
'$function(a_{d(V_2)})$', ...
'$function(a_{d(V_3)})$'}
I tried using regexprep but I do not know how to extract and put in the same number in the new string strNew as the original str. Here I'm replacing the number with x just to demonstrate my incomplete solution:
patternToFind = 'd\(V_[1-9]\)';
patternToReplaceWith = 'function\(a_\{d\(V_x\)\}\)';
strNew = regexprep(str, patternToFind, patternToReplaceWith)
Could someone assist me in forming a patternToReplaceWith which will help me arrive at strDesired after performing the regexprep?
0 Kommentare
Akzeptierte Antwort
Voss
am 10 Jun. 2022
Bearbeitet: Voss
am 10 Jun. 2022
You can capture the V_1, V_2, etc., in tokens, then place those tokens in the output of regexprep by specifying $1 in patternToReplaceWith
str = {'$d(V_1)$', ...
'$d(V_2)$', ...
'$d(V_3)$'};
patternToFind = 'd\((V_[1-9])\)';
% ^ ^ I added parentheses here to capture tokens of the form V_[1-9]
patternToReplaceWith = 'function\(a_\{d\($1\)\}\)';
% ^^ tell regexprep to use token #1 (the only token) #1
strNew = regexprep(str, patternToFind, patternToReplaceWith)
2 Kommentare
Voss
am 10 Jun. 2022
You're welcome! I'm glad you got it figured out. Thanks for accepting my answer anyway!
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!