How do I find the last occurrence of a match using regexp in MATLAB?
Mostrar comentarios más antiguos
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 comentarios
Azzi Abdelmalek
el 15 de Ag. de 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
el 16 de Ag. de 2013
Azzi Abdelmalek
el 16 de Ag. de 2013
Ok, but what about the answers below?
Respuesta aceptada
Más respuestas (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
el 15 de Ag. de 2013
str = '/* This is a comment */ int x; /* sectionEndExample */';
pattern='(?<=/\*)[\w\s]+(?=\*/)';
sectionEndIdx1 = regexp(str, pattern,'match');
sectionEndIdx1=sectionEndIdx1{end}
3 comentarios
Azzi Abdelmalek
el 15 de Ag. de 2013
You are right, even a space will make a problem.
Swati Tiwari
el 16 de Ag. de 2013
Swati Tiwari
el 16 de Ag. de 2013
1 comentario
Swati Tiwari
el 16 de Ag. de 2013
Editada: Azzi Abdelmalek
el 16 de Ag. de 2013
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!