Как написать gsub с фигурными кавычками для строк UTF-8? - PullRequest
6 голосов
/ 16 февраля 2012

Я пишу метод расширения для класса String для очистки не-ASCII символов.Строки, которые я очищаю, - это UTF-8.

При использовании в файле символов, отличных от ASCII, консоль не запускается, поскольку интерпретирует фигурные кавычки как обычные кавычки.

Какэкранировать фигурные кавычки в gsub?

Как написать gsub, использующий юникод для фигурных кавычек (например, U + 201C).

Работа в Rails 3.07 и Ruby 1.9.2.

1 Ответ

14 голосов
/ 16 февраля 2012

Вы можете использовать те же \u экранированные символы в регулярных выражениях, что и в двойных кавычках:

s.gsub(/[\u201c\u201d]/, '"')

Например:

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