zoominla 2008-7-9 14:38
匹配C++中注释符(// 及 /*something */) 的正则怎么写
如题,不知道 "/" 这个符号在正则中如何表示,如果这样会报错.[code]comment_str = " // int ivalue = 10"
comment_str.gsub!(/^/s*\/\//, "")[/code]意思是我想用空串替换掉注释行,"//"前可能有前导空白字符。 但是执行时解释器报错,应该是"/"符号表示的不对
xavier 2008-7-9 17:07
字符"/"在ruby的字符串及正则表达式中需加转义字符\,既用"\/"表示"/"
zoominla 2008-7-10 09:09
你看我上贴的代码,用了\转义,但报错,我觉得奇怪。
zoominla 2008-7-10 12:54
问题解决了。上面的代码其实可以运行,可能错误出在别的地方了
sevk 2008-7-13 10:55
irb(main):057:0> "main(){xx;} //it is a ".gsub!(/\/\/.+/, "")
=> "main(){xx;} "
irb(main):056:0> "main(){xx;} /* it is b */ ".gsub!(/\/*\/.*\/*/, "")
=> "main(){xx;} "
^/s 应该是 ^\s
[[i] 本帖最后由 sevk 于 2008-7-13 11:12 编辑 [/i]]