Ruby: замена пуль, вставленных из MS Word - PullRequest
1 голос
/ 03 июня 2009

Мне нужно удалить символы маркера из текста, вставленного из MS Word, но я не могу понять, с чем сопоставить.

При печати в STDOUT символ отображается как â ¢ Коды ASCII для этих символов 194 и 162. • Код ASCII для символов: 149

Любые предложения, как поступить в коде JavaScript или Ruby?

Ответы [ 2 ]

1 голос
/ 10 декабря 2009

В ruby ​​вы должны использовать что-то вроде:

mystring.gsub(/[\xxx]/,'whatever')

где xxx - код символа, который вы ищете. Вы можете увидеть, что это за код, просто набрав puts mystring в irb, и он должен показать вам

0 голосов
/ 16 мая 2016

У меня была похожая проблема с пунктами маркера, в том числе с получением символов, которые вы описываете. Я пробовал различные фильтры regEx и не мог заставить что-либо работать, ни над маркером, ни над получающимися символами.

Однако мне удалось найти способ отфильтровать точку маркера (или любой подобный символ) с помощью специального метода. Это не красиво и не идеально, но работает:

def strip_bullet_point(value) 
  first_char = 0
  value.each_char { |c| c =~ /[A-Za-z]/ ? break : first_char += 1 }

  value[first_char...value.length]
end

Это также удалит все предшествующие пробелы и другие не алфавитные символы, так как они также возвращают ноль для проверки = ~.

Не используйте /[[:alpha:]]/ для совпадения выражений, так как при этом символы as будут рассматриваться как буквы. Просто обратите внимание, что /[A-Za-z]/ выдаст ложные отрицания для неанглийских символов, таких как 'ñ'.

...