У меня была похожая проблема с пунктами маркера, в том числе с получением символов, которые вы описываете. Я пробовал различные фильтры 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]/
выдаст ложные отрицания для неанглийских символов, таких как 'ñ'.