help on regexp to extract words between ""
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
raym
am 24 Sep. 2019
Beantwortet: the cyclist
am 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?
0 Kommentare
Akzeptierte Antwort
the cyclist
am 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.
0 Kommentare
Weitere Antworten (1)
Ruger28
am 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 Kommentare
Ruger28
am 24 Sep. 2019
It is pretty amazing! There is also extractBefore and extractAfter, and they are imensly useful when convoluted regexp's are normally needed. Only thing is that they are 2016 or later.
Siehe auch
Kategorien
Mehr zu Characters and Strings 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!