如何用UTF-8字符串的带引号的gsub写?

B S*_*ven 6 ruby unicode ruby-on-rails utf-8 ruby-1.9.2

我正在为String类编写一个扩展方法来清理非ASCII字符.我正在清理的字符串是UTF-8.

在文件中使用非ASCII字符时,控制台将无法启动,因为它将卷曲引号解释为常规引号.

如何逃避gsub中的卷曲引用?

如何编写使用unicode作为卷引号的gsub(例如U + 201C).

使用Rails 3.07和Ruby 1.9.2.

mu *_*ort 14

您可以\u在双引号字符串中使用的正则表达式中使用相同的转义符:

s.gsub(/[\u201c\u201d]/, '"')
Run Code Online (Sandbox Code Playgroud)

例如:

>> s = "\u201Cpancakes\u201d"
=> "“pancakes”"
>> puts s.gsub(/[\u201c\u201d]/, '"')
"pancakes"
Run Code Online (Sandbox Code Playgroud)

  • 供参考,相同的解决方案,但单引号:`s.gsub(/ [\ u2018\u2019] /,'\'')` (4认同)