Русский язык и \w в регулярках
Для того, чтобы выбрать все буквы, в регулярных выражениях используется выражение \w.
"Bla-bla-bla! (c)".gsub(/[^\w]/u, '') # => "BlaBlaBlac"
С русским языком такое не получится:
"Бла-Бла-Бла! (с)".gsub(/[^\w]/u, '') # => ""
Самое первое что приходит на ум это:
"Бла-Бла-Бла! (с)".gsub(/[^а-я]/iu, '') # => "БлаБлаБлас"
Оппана! Вроде работает, но на самом деле, это не корректное выражение. Пример:
'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБЮйцукенгшщзхъфывапролджэёячсмитьбю1234567890=/!"№%:,.;()_+!@#$%^&*()'.gsub(/[^а-я]/ui, '')
# => "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбю"
# => "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбю"
Буквы ё и Ё потерялись. Правильно так: /[^а-яё]/ui
'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБЮйцукенгшщзхъфывапролджэёячсмитьбю1234567890=/!"№%:,.;()_+!@#$%^&*()'.gsub(/[^а-яё]/ui, '')
# => "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБЮйцукенгшщзхъфывапролджэёячсмитьбю"
# => "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЁЯЧСМИТЬБЮйцукенгшщзхъфывапролджэёячсмитьбю"
