У меня проблемы с использованием gsub для замены двойной косой черты. Проблема заключается в следующем:
Я создал небольшой скрипт для синтаксического анализа YAML-файлов на предмет местоположения каталога и последующего его использования для перемещения файлов в этом каталоге. Скажем, это каталог, который он находит:
C:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\ActionScript 3.0\Classes
Это каталог Windows, и обратный слэш экранируется парсером YAML, поэтому он действительно загружается из парсера как:
C:\\Program Files\\Adobe\\Adobe Flash CS3\\en\\Configuration\\ActionScript 3.0\\Classes
Чтобы использовать этот каталог, я хотел убрать двойные косые черты:
path.gsub('\\','/')
Этот вызов заменил большую часть двойной обратной косой черты в пути, хотя скрипт все еще не работал. Когда я посмотрел на то, каким стал путь, я обнаружил, что есть еще один обратный слеш, который не был заменен gsub:
\en
Чем объясняется это странное поведение?