MATLAB正则表达式跳过,如果是单词的一部分

sla*_*r98 2 regex matlab

给出以下示例:

str = 'deriv*dot(N,iv)';
expr = 'iv';
idx = regexp(str,expr);
Run Code Online (Sandbox Code Playgroud)

这将返回idx为4和13.我如何才能找到不属于单词的'iv'?

我尝试使用Lookr操作符来解决expr,但是无法得到我想要的结果.谢谢您的帮助.

Mar*_*der 6

似乎Matlab有自己的单词边界转义序列.

expr = '\<iv\>';
Run Code Online (Sandbox Code Playgroud)

它将单词定义为由字母,数字和下划线组成的任何单词.如果你想要自己的定义(即只有字母),那么你需要看一下:

expr = '(?<![a-zA-Z])expr(?![a-zA-Z])';
Run Code Online (Sandbox Code Playgroud)