Extract Variables from mixed string

1 vue (au cours des 30 derniers jours)
Azar Nejad
Azar Nejad le 12 Août 2018
Commenté : Azar Nejad le 12 Août 2018
Hi all,
In this string
'# Message: onset_pic1_8.png'
how can I read 'onset', 'pic', '1', '8' in four variables?
  1 commentaire
dpb
dpb le 12 Août 2018
Use regexp

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 12 Août 2018
S = '# Message: onset_pic1_8.png';
parts = regexp(S, '(?<name1>[A-Za-z]+)_(?<name2>[A-Za-z]+)(?<num1>\d+)_(?<num2>\d+)', 'names')
parts =
struct with fields:
name1: 'onset'
name2: 'pic'
num1: '1'
num2: '8'
I coded to permit uppercase as well as lowercase, but I did assume that the alphabetic parts remain alphabetic and the numeric parts remain numeric.
  1 commentaire
Azar Nejad
Azar Nejad le 12 Août 2018
This works great many thanks
Azar

Connectez-vous pour commenter.

Plus de réponses (1)

Paolo
Paolo le 12 Août 2018
Modifié(e) : Paolo le 12 Août 2018
You can use:
mystring = '# Message: onset_pic1_8.png';
matches = regexp(mystring,'\d|[a-z]+(?=_|\d)','match')
>>matches
{'onset'} {'pic'} {'1'} {'8'}
To obtain the values.
You can't use 1 and 8 as variable names.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by