How do I find the last occurrence of a match using regexp in MATLAB?
Afficher commentaires plus anciens
If I have the following string in MATLAB:
str = '/* This is a comment */ int x; /* sectionEndExample */';
How do I find the last comment that contains sectionEndExample? I have tried the following:
expr = ['^.*/\*.*sectionEndExample.*\*/'];
sectionEndIdx1 = regexp(str, expr);
But this always returns the sectionEndIdx1 as 1. I am looking in the documentation and have so far played around with the lookAround options. However, I can't figure out a way to do it in MATLAB :(
3 commentaires
Azzi Abdelmalek
le 15 Août 2013
if you knpw the comment sectionEndExample, why are you looking for it?
Or do you want to find the last comment between * ?
Swati Tiwari
le 16 Août 2013
Azzi Abdelmalek
le 16 Août 2013
Ok, but what about the answers below?
Réponse acceptée
Plus de réponses (3)
Is it what you want? If so, we can work a bit to improve it (in particular for allowing stars in the comment if relevant, which are not allowed with this pattern).
>> regexp(str, '[^\*]+(?=\*/$)', 'match')
ans =
' sectionEndExample '
Azzi Abdelmalek
le 15 Août 2013
str = '/* This is a comment */ int x; /* sectionEndExample */';
pattern='(?<=/\*)[\w\s]+(?=\*/)';
sectionEndIdx1 = regexp(str, pattern,'match');
sectionEndIdx1=sectionEndIdx1{end}
3 commentaires
Azzi Abdelmalek
le 15 Août 2013
You are right, even a space will make a problem.
Swati Tiwari
le 16 Août 2013
Swati Tiwari
le 16 Août 2013
1 commentaire
Swati Tiwari
le 16 Août 2013
Modifié(e) : Azzi Abdelmalek
le 16 Août 2013
Catégories
En savoir plus sur File Operations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!