regex: Extract then delete
24 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hau Kit Yong
il 4 Lug 2019
Commentato: Hau Kit Yong
il 4 Lug 2019
Is there a regex function that can extract matched strings and delete them after? I would like to do this without searching over the string twice using regexp(str, expr, 'match') followed by regexprep(str, expr, '').
0 Commenti
Risposta accettata
Stephen23
il 4 Lug 2019
Modificato: Stephen23
il 4 Lug 2019
"Is there a regex function that can extract matched strings and delete them after?"
Not really.
You could do something like this with regexprep and dynamic expressions to store the matched data in a workspace variable, but this will be slow, complex, and rather fragile.
One simple and efficient workaround would be to use both the match and split outputs: this example matches and removes the digits, leaving only the alphabetic characters:
>> S = 'abcd1234efghi6789jklm';
>> [X,Y] = regexp(S,'\d+','match','split');
>> Z = [Y{:}] % the new string with substrings removed
Z =
abcdefghijklm
>> X{:} % the matched substrings
ans =
1234
ans =
6789
Più risposte (0)
Vedere anche
Categorie
Scopri di più su String Parsing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!