How do I find the last occurrence of a match using regexp in MATLAB?
이전 댓글 표시
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
Azzi Abdelmalek
2013년 8월 15일
if you knpw the comment sectionEndExample, why are you looking for it?
Or do you want to find the last comment between * ?
Swati Tiwari
2013년 8월 16일
Azzi Abdelmalek
2013년 8월 16일
Ok, but what about the answers below?
채택된 답변
추가 답변 (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
2013년 8월 15일
str = '/* This is a comment */ int x; /* sectionEndExample */';
pattern='(?<=/\*)[\w\s]+(?=\*/)';
sectionEndIdx1 = regexp(str, pattern,'match');
sectionEndIdx1=sectionEndIdx1{end}
댓글 수: 3
Azzi Abdelmalek
2013년 8월 15일
You are right, even a space will make a problem.
Swati Tiwari
2013년 8월 16일
카테고리
도움말 센터 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!