简单的正则表达式看似不起作用c ++

时间:2016-10-27 02:50:09

标签: c++ regex

试图找到正则表达式来指示方程的右侧是否具有“M”。这就是我所拥有的:

^[^=\\s@0-9;(D|A)]+(?==)

以下是我翻译的方式:

^ - assert start of line

[everything in brackets] - match one or more characters NOT in these brackets

(?==) - positive lookahead... but now that I'm actually writing this out I think this might be the error. 

我一直在www.regex101.com上使用php默认开发我的正则表达式(我知道,笨,但我找不到在线C ++版本)。很难用这种方式预测这样做的行为,当我有一些似乎可行的东西时,它只能部分起作用。

所以,

M=D-M  // should indicate M on RHS
D=D+A  // should not indicate M on RHS
D=A    // should not indicate M on RHS

我的代码可能有一个与正则表达式无关的细微错误,但我很确定情况并非如此。它适用于几十种情况,只有2-3个错误。我们假设它与正则表达式有关。

P.S。我正在尝试解析一些简单的.asm文件......

HELP!

1 个答案:

答案 0 :(得分:4)

试试这个正则表达式:

^[^=]+=([^=]*[M][^=]*)$

在这里演示:

Regex101