rubyregexrubular

Regular expression to match special characters within double quotes


My input string is :

"& is here "& is here also, & has again occured""

Using gsub method in Ruby language, is there a way to substitute character '&' which is occuring within double quotes with character '$', if gsub method doesnt solve this problem, is there any other approach which can be used to address this problem.

Since first arguement in gsub method can be a regex, so matched regex will be substituted by the second arguement, getting a right regex for identifying might also solve this problem since it can be substituted in the gsub method for replacing '&' with '$'.

Expected output is as shown :

& is here "$ is here also , $ has again occured"

Solution

  • str = %q{& is here "& is here also , & has again occured"}
    str.gsub!(/".*?"/) do |substr|
      substr.gsub(/&/, '$')
    end
    puts str
    # => & is here "$ is here also , $ has again occured"
    

    EDIT: Just noticed that stribizhev proposed this way before I wrote it.