Extract info using regular expression matching

2 Ansichten (letzte 30 Tage)
Murugan C
Murugan C am 24 Mär. 2022
Beantwortet: Rik am 24 Mär. 2022
Hello together,
I was trying to do some regurlare expression, I am getting correct output which i was expecting. can you please help me
myinp = {['getval' ('MYINFO\ECE1') '==19 & (getval(' 'MYDataCode\CSE' ') >= 4) & (getval(' 'MYCHANGE\DEPT' ') < 6'] };
[a,b]=regexp(myinp,'([^"])','tokens');
%expected output should be like
a{1,1} = getval('MYINFO\ECE1')
a{1,2} = getval('MYDataCode\CSE')
a{1,3} = getval('MYCHANGE\DEPT')
  3 Kommentare
Murugan C
Murugan C am 24 Mär. 2022
this is my input
myinp = {['getval(' '''MYINFO\ECE1''' ')' '==19 & (getval(' '''MYDataCode\CSE''' ') >= 4) & (getval(' '''MYCHANGE\DEPT''' ') < 6)'] }
myinp = 1×1 cell array
{'getval('MYINFO\ECE1')==19 & (getval('MYDataCode\CSE') >= 4) & (getval('MYCHANGE\DEPT') < 6)'}
Stephen23
Stephen23 am 24 Mär. 2022
Your text does not have any double quote characters, that regular expression will match everything.
What is the purpose of the superfluous scalar cell array?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Rik
Rik am 24 Mär. 2022
Maybe this is what you need?
myinp = {['getval(' '''MYINFO\ECE1''' ')' '==19 & (getval(' '''MYDataCode\CSE''' ') >= 4) & (getval(' '''MYCHANGE\DEPT''' ') < 6)'] };
[a,b]=regexp(myinp{1},'getval\(''([^'']*)''\)','match')
a = 1×3 cell array
{'getval('MYINFO\ECE1')'} {'getval('MYDataCode\CSE')'} {'getval('MYCHANGE\DEPT')'}
b = 1×3
1 30 64

Weitere Antworten (0)

Kategorien

Mehr zu Variables 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!

Translated by