正则表达式一直没有好好学过,在回答下面这个帖子时,稍稍补了补。
http://topic.youkuaiyun.com/u/20090819/14/72357f5a-efc4-4161-8d7b-7a94e9b3757c.html?43119
问题复述一下:
应用场景:
int i = 1;
if a = 1 and b = 1 and c = 1 then
return 0
else
return 1
end if;
替换成
int i = 1
if a == 1 and b == 1 and c == 1 :
return 0
else:
return 1
条件控制语句则进行替换,变量赋值不进行替换.
主要写出语句中 = 号的替换表达式
============
第一次尝试
结果这样把b给弄没了
if a == 1 and c == 1
第二次尝试
修改了一下lz提供的表达式,如下:
这个是去匹配等号,会把赋值语句也给改了
第三次尝试
在前面的尝试不成功后,仔细考虑了一下,((/w+/s*)=(/s*/d+)))* 匹配了两次,但是只能引用最后匹配的字符串。我就想干脆去单独匹配各个等号,但是怎么区分赋值语句和条件表达式呢?可以想到每个条件表达式前面是if或者逻辑连接词。于是就有了下面的实现:
运行结果正确,大功告成。