Extracting consecutive digits using regexp
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hau Kit Yong
il 22 Giu 2019
Commentato: per isakson
il 22 Giu 2019
I expected
regexp('ITEM 123', '.+(\d+)', 'tokens')
to return '123'. Why does it only return '3'? What would be the correct expression?
0 Commenti
Risposta accettata
per isakson
il 22 Giu 2019
Modificato: per isakson
il 22 Giu 2019
These two returns "123"
%%
cac = regexp('ITEM 123', '.+?(\d+)', 'tokens' )
%%
cac = regexp('ITEM 123', '[^\d]+(\d+)', 'tokens' )
First, '.+' matches anything up til the end of the text, next it gives back just as little as needed to match '(\d+)' , which is one digit.
'.+?' matches as little as needed so that '(\d+)' is able to match the following text.
I prefer '[^\d]+(\d+)'
Or why not just
cac = regexp('ITEM 123', '\d+', 'match' )
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Characters and Strings 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!