我目前有这个正则表达式:this\.(.*)?\s[=,]\s
,但是我遇到了一个我无法修复的泡菜。贪婪和非贪婪的正则表达式
我试过下面的正则表达式,它可以工作,但它捕获了我不想要的空间:this\.(.*)?(?<=\s)=|(?<!\s),
。我想要做的是匹配标识符名称。我想要的一个例子和结果是这样的:
this.""W = blah;
这将匹配""W
。上面的第二个正则表达式几乎是完美的,但它也捕获了第一组中=
之前的空间。有人能指出我正确的方向来解决这个问题吗?
编辑:究其原因,通配符组中不是简单地使用[^\s]
是,有时我能得到线这样的:this. "$ = blah;
EDIT2:现在我有另一个问题。它不正确匹配param1.readBytes(this.=!3,0,param1.readInt());
。而不是匹配=!3
其匹配=!3,0
。有没有办法来解决这个问题?再次,我不能简单地使用[^,]
,因为可能有一个名称应该与,3$
匹配的名称,如param1.readBytes(this.,3$,0,param1.readInt());
。
用什么语言写你的程序? – 2013-05-08 11:30:55
所以如何判断一个逗号是属于this.identifier还是作为函数参数的分隔符? – 2013-05-08 11:33:35
有没有办法在Regex中向后读取?例如,从';'开始并返回,直到你通过两个'','然后开始捕获,直到找到'this.'?或者这是不可能的...... – jduncanator 2013-05-08 11:37:28