Rubyで正規表現を使ってシングルクォートをエスケープしようとした。
------------------------------
str = "I'm lovin' it"
str.gsub!(/'/, "\\'")
puts str
------------------------------
そしたらなぜかこうなった
(実行結果)
^^^^^^^^^^^^^^^^^^^^^
Im lovin' itm lovin it it
^^^^^^^^^^^^^^^^^^^^^
なぜだ・・・。意味が分からなすぎる。
いろいろ調べたけどどうしてそうなるのか分からなかった(笑)
で、結局違うやり方で
--------------------------------
str = "I'm lovin' it"
str.gsub!(/'/) do |m|
'\\' + m
end
puts str
--------------------------------
こうやったら
^^^^^^^^^^^^^^^^^^^^^^^
I\'m lovin\' it
^^^^^^^^^^^^^^^^^^^^^^^
ちゃんとできた。これで出来るならまぁいいか(妥協)
ちなみになぜシングルクォートをエスケープしたいかというと
RubyからMySQLにデータを入れるときにテキストでシングルクォートを入れたいから。
0 件のコメント:
コメントを投稿