How do I find the last occurrence of a match using regexp in MATLAB?
Show older comments
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 Comments
Azzi Abdelmalek
on 15 Aug 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
on 16 Aug 2013
Azzi Abdelmalek
on 16 Aug 2013
Ok, but what about the answers below?
Accepted Answer
More Answers (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
on 15 Aug 2013
str = '/* This is a comment */ int x; /* sectionEndExample */';
pattern='(?<=/\*)[\w\s]+(?=\*/)';
sectionEndIdx1 = regexp(str, pattern,'match');
sectionEndIdx1=sectionEndIdx1{end}
3 Comments
Azzi Abdelmalek
on 15 Aug 2013
You are right, even a space will make a problem.
Swati Tiwari
on 16 Aug 2013
Swati Tiwari
on 16 Aug 2013
1 Comment
Swati Tiwari
on 16 Aug 2013
Edited: Azzi Abdelmalek
on 16 Aug 2013
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!