Regex 匹配正则表达式,除非前导字符是空格

Regex 匹配正则表达式,除非前导字符是空格,regex,Regex,我有三个字符串,其中只有两个必须匹配: c = kj.a(yj.class, ki.f); //Should match entirely k = kj.h(yj.class, ki.b); //Should match entirely Object a0 = this.l.a(yj.class, this.bo().b(0.5, 0.0, 0.5)).iterator(); // Should NOT match at all 为了将前两个字符串与可能出现的其他字符串区分开来,我编写了

我有三个字符串,其中只有两个必须匹配:

c = kj.a(yj.class, ki.f);  //Should match entirely
k = kj.h(yj.class, ki.b);  //Should match entirely
Object a0 = this.l.a(yj.class, this.bo().b(0.5, 0.0, 0.5)).iterator(); // Should NOT match at all
为了将前两个字符串与可能出现的其他字符串区分开来,我编写了以下表达式:

(\w* = [^;]*\.\w\(yj\.class, [^;]*\);)
但是现在,发生的事情是前两个字符串被正确匹配,但最后一个字符串被部分匹配,因为它与前两个有一些相同的模式(最后一个字符串根本不应该被匹配);最后一个匹配如下:
a0=this.l.a(yj.class,this.bo().b(0.5,0.0,0.5)).iterator()

如何防止最后一个字符串完全匹配?我想我应该检查第一个字符是否不是空格(
)(或者包含一个…

/^\w+=[^;]*\.\w\(yj\.class,[^;]*\)/mg

多行匹配

g-全球


此正则表达式只接受在“=”前面不包含数字的行


看看。
^\w*=[^;]*\.\w\(yj\.class,[^;]*\);)^->应该从这个开始。但\w*表示零次或多次出现。你确定吗?还有一件事是使用
\w+
而不是
\w*
@silentmank当我使用它时,第一个字符串会匹配,但是第二个字符串不再匹配了?可能与\n…?@Momo有关,您能在进行正则表达式匹配的地方发布代码片段吗?您能为这个正则表达式添加一些上下文吗?
/(^[^ ]+ = [^;]*\.\w\(yj\.class, [^;]*\);)/gm
[a-z]\s=[^;]*\.\w\(yj\.class, [^;]*\);