fork download
  1. my_string = "SELECT * FROM users WHERE first_name = 'first name value'"
  2. my_string2 = "SELECT * FROM users WHERE first_name = 'first\"s name value'"
  3. my_string3 = "SELECT * FROM users WHERE first_name = 'first\\'s name value'"
  4.  
  5. rx = /first_name = (?:'(?<val>[^'\\]*(?:\\.[^'\\]*)*)'|"(?<val>[^"\\]*(?:\\.[^"\\]*)*"))/i
  6.  
  7. puts rx.match(my_string)["val"]
  8. puts rx.match(my_string2)["val"]
  9. puts rx.match(my_string3)["val"]
  10.  
Success #stdin #stdout 0.05s 9744KB
stdin
Standard input is empty
stdout
first name value
first"s name value
first\'s name value