Я пытаюсь найти текст на соответствие и вернуть его с фрагментом вокруг него. Для этого я хочу найти соответствие с регулярным выражением, а затем вырезать строку, используя индекс соответствия + - радиус фрагмента (text.mb_chars [start..finish]).
Однако я не могу заставить регулярное выражение ruby (1.8) возвращать индекс соответствия, который был бы многобайтовым.
Я понимаю, что регулярное выражение - это одно место в 1.8, которое должно быть осведомлено, но, похоже, оно не работает, несмотря на переключатель / u:
"Résumé" =~ /s/u
=> 3
"Resume" =~ /s/u
=> 2
Результат должен быть таким же, если регулярное выражение действительно работало в многобайтовых (/ u), но возвращает байтовый индекс.
Как получить индекс соответствия в символах, а не в байтах?
Или, может быть, есть какой-то другой способ получить фрагмент во время (каждого) матча?