Regex 正则表达式的格式正确,但没有在grep中输出预期结果

Regex 正则表达式的格式正确,但没有在grep中输出预期结果,regex,grep,Regex,Grep,我正在尝试搜索代码库以查找以下模式的实例: m_vParts[foo] = 以及具有不同空格的类似实例。所以我可以用这个正则表达式: m_vParts\[.*\]\s*=[^=]\s* 当我在和其他regex tester类型的站点上测试它时,它正好找到了我想要的东西。然而,当我实际上grep(或egrep)时,我没有得到任何结果。我的猜测是我的正则表达式对于grep的正则表达式方言来说不是很好,但我不确定我的出发点 以下是我给出的实际命令: [e]grep -Irn "m_vParts\

我正在尝试搜索代码库以查找以下模式的实例:

m_vParts[foo] = 
以及具有不同空格的类似实例。所以我可以用这个正则表达式:

m_vParts\[.*\]\s*=[^=]\s*
当我在和其他regex tester类型的站点上测试它时,它正好找到了我想要的东西。然而,当我实际上
grep
(或
egrep
)时,我没有得到任何结果。我的猜测是我的正则表达式对于
grep
的正则表达式方言来说不是很好,但我不确定我的出发点

以下是我给出的实际命令:

[e]grep -Irn "m_vParts\[.*\]\s*=[^=]\s*" .
我试过用单引号和双引号

下面是代码库的示例代码示例:

pcTab->m_vParts[iLastPart] = pcPart;
if ( m_pcCurrentTab->m_vParts[i]== pcPart )
我希望第一行是匹配的,第二行不是

另外,我应该注意到我在Windows7x64上使用的是GNUwin32grep


在此提前感谢您的指导;非常努力避免非自动搜索:)

只需在re:

$ vim 1.txt
$ egrep 'm_vParts\[.*\]\s*=[^=]\s*' 1.txt
pcTab->m_vParts[iLastPart] = pcPart;

如您所见,所有操作都有效。

只需在re:

$ vim 1.txt
$ egrep 'm_vParts\[.*\]\s*=[^=]\s*' 1.txt
pcTab->m_vParts[iLastPart] = pcPart;

正如你所看到的,所有功能都正常。

Hmmm,
egrep-Irn“m_vParts\[.*\]\s*=[^=]\s*”
对我的Ubuntu框进行了点击……你说你在Windows上运行这个命令。你到底是怎么运作的?比如,这是在Bash中,还是在直起的Windows shell中,还是?它位于Windows shell中,使用一些linux工具的Windows端口,如GnuWin32包中的grep。我想这可能是这个软件包的问题,因为人们似乎能够在linux机器上获得预期的结果。嗯,
egrep-Irn“m_vParts\[.*\]\s*=[^=]\s*”
对我的Ubuntu机器产生了影响……你说你在Windows上运行这个命令。你到底是怎么运作的?比如,这是在Bash中,还是在直起的Windows shell中,还是?它位于Windows shell中,使用一些linux工具的Windows端口,如GnuWin32包中的grep。我想这可能是这个软件包的一个问题,因为人们似乎能够在linux机器上获得预期的结果。再次抱歉,正如我前面提到的,我尝试过这个,但忘记把它放在原来的帖子中。标记这个作为答案,因为它是一个正确的正则表达式,以防其他人正在寻找类似的东西。我相信我的问题在于grep工具的Windows端口对不起,正如我上面提到的,我已经尝试过了,但是忘记了把它放在原始帖子中。标记这个作为答案,因为它是一个正确的正则表达式,以防其他人正在寻找类似的东西。我相信我的问题在于grep工具的Windows端口