如何在MATLAB中使用regexp找到最后一次匹配?

时间:2013-08-15 20:34:33

标签: regex matlab

如果我在MATLAB中有以下字符串:

str = '/* This is a comment */ int x; /* sectionEndExample */';

如何找到包含给定字符串的注释。在此示例中,字符串为'sectionEndExample'。

expr = ['^.*/\*.*sectionEndExample.*\*/'];
sectionEndIdx1 = regexp(str, expr);

但是这总是将sectionEndIdx1返回为1,这意味着它首先匹配它     '/ ' 而我希望它与最后一个匹配     '/ '。

我正在查看文档,到目前为止已经使用了lookAround选项。但是,我无法想出在MATLAB中做到这一点的方法:(

1 个答案:

答案 0 :(得分:1)

我不确定你的问题是什么,但你可以编辑regexp函数来准确返回单元格数组中匹配的内容。然后使用此单元格数组,只需选择它的最后一个索引,这将是最后一个匹配。

sectionEndIdx1 = regexp(str, expr,'match');

但是,这将返回您提供的整个字符串作为匹配项,因为根据您给出正则表达式的条件,它将匹配整个字符串。

如果这不是所需的结果,则需要修改正则表达式字符串。

我建议使用像regexpal这样的网站来测试正则表达式,然后再将它们插入MATLAB