S_Ahmed
(S Ahmed)
September 30, 2012, 11:16pm
1
I am trying this:
I want to replace all the text in between java comments:
/* start */
replace this text here
/* end */
I’m trying:
text.gsub(//* start /(. )/* end *//im, replace_with)
But i’m getting errors relating to expecting keyword_end.
How should I be escaping /* and */ ?
Also, does string interpolation work in gsub regex? Say I had variables like:
start_tag = “/* start */”
end_tag = “/* end */”
I want to do:
text.gsub(“#{start_tag}(.*)#{end_tag}”, replace_with)
bricker
(bricker)
September 30, 2012, 11:49pm
2
You have to escape the slashes and asterisk in the regex, as they are regular expression characters. http://rubular.com is a great place to learn and play around with regular expressions.
text.gsub(//* start */(.*)/* end *//im, replace_with)
Yes, interpolation works in regular expressions:
text.gsub(/#{start_tag}(.*)#{end_tag}/, replace_with)
S_Ahmed
(S Ahmed)
October 1, 2012, 12:14am
3
thanks!
BTW, is it possible that during the replace, it leaves the start/end tag?
Currently it is replacing it also, I want the comments to be there after the replacement.
Jeffrey
(Jeffrey)
October 1, 2012, 3:35am
4
Quoting S Ahmed <sahmed1020@gmail.com>:
I am trying this:
I want to replace all the text in between java comments:
/* start */
replace this text here
/* end */
I'm trying:
text.gsub(//* start */(.*)/* end *//im, replace_with)
But i'm getting errors relating to expecting keyword_end.
How should I be escaping /* and */ ?
Yes,
text.gsub(/\/\* start \*\/(.*)\/\* end \*\//im, replace_with)
Slightly simpler
text.gsub(%r{/\* start \*/(.*)/\* end \*/}im, replace_with)
Also, does string interpolation work in gsub regex? Say I had variables
like:
start_tag = "/* start */"
end_tag = "/* end */"
I want to do:
text.gsub("#{start_tag}(.*)#{end_tag}", replace_with)
gsub takes regex, not strings
text.gsub(/#{start_tag}(.*)#{end_tag}/, replace_with)
Special characters do need to be escaped in start_tag and end_tag, but in this
case only the asterisks, not the slashes.
HTH,
Jeffrey