MATLAB Answers

help on regexp to extract words between ""

1 view (last 30 days)
raym
raym on 24 Sep 2019
Answered: the cyclist on 24 Sep 2019
aMajorLine = 'var _0x3f86=["\x72\x65\x64","\x67\x72\x65\x65\x6E","\x62\x6C\x75\x65"]';
[a,b] = regexp(aMajorLine,'var _0x3f86=\[\"([\w\\]+)\",?]+\]','tokens')
I want to extract the words inside "". The results is empty. Is there something wrong?

Accepted Answer

the cyclist
the cyclist on 24 Sep 2019
I find it difficult to debug someone else's regexp. :-(
Before seeing @Ruger28's elegant solution, I would have done
matches = regexp(aMajorLine,'"[\w*,\\]*"','match')
matches = regexprep(matches,'"','');
Note that I first pull out with the double-quote characters, then strip them out in the second line. It is possible to do this in one regexp step instead, using "lookaround" assertions, but I find that less easy to understand.

More Answers (1)

Ruger28
Ruger28 on 24 Sep 2019
if using R2016b or later
aMajorLine = 'var _0x3f86=["\x72\x65\x64","\x67\x72\x65\x65\x6E","\x62\x6C\x75\x65"]';
extractedText = extractBetween(aMajorLine,'"','"');
which gives:
extractedText =
3×1 cell array
{'\x72\x65\x64' }
{'\x67\x72\x65\x65\x6E'}
{'\x62\x6C\x75\x65' }
  3 Comments

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!