регулярное выражение в порядке; ваш вклад не то, что вы думаете. Backsla sh внутри строк экранирует .
String.split("C:\foo\bar", "")
#⇒ ["", "C", ":", "\f", "o", "o", "\b", "a", "r", ""]
String.length("C:\foo\bar")
#⇒ 8
Примечание "\f"
и "\b"
там. Строка не содержит backsla sh, но содержит кодовые точки "\f"
и "\b"
.
При этом вам нужно передать правильную строку в Regex.split/3
, чтобы получить ожидаемый результат.
Regex.split(~r|\\|, "C:\\foo\\bar")
#⇒ ["C:", "foo", "bar"]