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

时间:2016-05-29 17:31:46

标签: regex

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

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

为了区分前两个字符串与可能存在的其他字符串,我写了这个表达式:

a0 = this.l.a(yj.class, this.bo().b(0.5, 0.0, 0.5)).iterator();

但是现在,发生的事情是前两个字符串得到正确匹配,但是最后一个字符串部分匹配,因为它与前两个字符串有一些相同的模式(最后两个字符串根本不匹配);最后一个匹配如下:

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

3 个答案:

答案 0 :(得分:0)

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

  

m - 多行匹配。

     

g - 全球

答案 1 :(得分:0)

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

Demo

答案 2 :(得分:0)

这个正则表达式只会在" ="

之前使用不包含数字的行
[a-z]\s=[^;]*\.\w\(yj\.class, [^;]*\);