From: andy.am@... Date: 2020-08-19T15:24:32+00:00 Subject: [ruby-core:99643] [Ruby master Bug#17126] String#gsub fails to escape single quote Issue #17126 has been reported by AndyMaleh (Andy Maleh). ---------------------------------------- Bug #17126: String#gsub fails to escape single quote https://bugs.ruby-lang.org/issues/17126 * Author: AndyMaleh (Andy Maleh) * Status: Open * Priority: Normal * ruby -v: 2.7.1 * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- Hi, I don't know if I'm misunderstanding how `String#gsub` works, but I encountered an issue in the Ruby "git" gem with escaping single quotes, which I fixed and [contributed back](https://github.com/ruby-git/ruby-git/pull/480). I thought I'd report here too since it was caused by Ruby `String#gsub` malfunctioning in case there is a bug in Ruby. **Description:** `String#gsub(str, replacement)` is duplicating a substring outside the **Code to Demonstrate Problem:** ```ruby "Hello ' World".gsub('\'', '\'\\\'\'') ``` or ```ruby "Hello ' World".gsub("'", "'\\''") ``` or ```ruby "Hello ' World".gsub(/'/, "'\\''") ``` **Output:** ``` => "Hello ' World' World" ``` **Expected Output:** ``` => "Hello '\'' World" ``` In fact, I tested this same regex replacement in Java and got the expected output above. I look forward to hearing back about this puzzling problem. Perhaps it is not a bug and I am just misunderstanding how `String#gsub` works in Ruby as I noticed it behaves the same exact way in JRuby too. Best regards, Andy Maleh -- https://bugs.ruby-lang.org/ Unsubscribe: