Я пробовал это, но не работал.
import re
s = "Ex\am\ple String"
replaced = re.sub("\", "/", s)
print replaced
Какие-либо предложения?
Я пробовал это, но не работал.
import re
s = "Ex\am\ple String"
replaced = re.sub("\", "/", s)
print replaced
Какие-либо предложения?
Просто используйте этот код:
s = s.replace("\\", "/")
Он заменяет все обратные косые черты на прямую косую черту. Причина двух обратных косых черт в том, что вам нужно избежать другой обратной косой черты.
Попробуйте так с \\\\
:
import re
s = "Ex\am\ple String"
replaced = re.sub("\\\\", "/", s)
print replaced
Вы, вероятно, не используете достаточно обратной косой черты. Обратная косая черта часто является escape-символом. Попробуйте прокомментировать здесь, используя один \, затем два \, вы заметите, что здесь вы получите только один вывод.
кодовая версия того, что я только что набрал, чтобы показать, что я имею в виду:
Backslash is often an escape character. Try commenting here using one \,
then two \\, you'll notice you only get one in the output here.
Я написал аналогичный код в R, когда вырезал и вставлял расположение файлов.
fileLoc = function(){
Rlocation = gsub( "\\\\","/",readClipboard())
return(Rlocation)
}
Обратите внимание, что для этого требуется 4 обратной косой черты.
Попробуйте следующее:
s = "Ex\am\ple String"
replaced = re.sub("\\\\", "/", s)
У вас есть две проблемы: во-первых, ваша строка не то, что вы думаете, потому что '\a'
интерпретируется как escape-литерал. Чтобы исправить это, используйте строку raw или regex,
s = r"Ex\am\ple String"
Теперь вы можете делать то, что хотите, используя
replaced = re.sub(r"\\", "/", s)
Здесь необходимы два \
, потому что re
ожидает, что один \
будет escape-символом. Кроме того, r"\\"
должна быть необработанной строкой, потому что Python в более общем смысле также интерпретирует "\"
как escape-символ. Чтобы «экранировать escape-символ», вы можете снова выполнить двойной трюк \
, и поэтому другим способом сделать это будет
replaced = re.sub("\\\\", "/", s)
Помимо экранирования и модуля re
, для таких простых замен вы должны использовать метод str
replace
,
replaced = s.replace("\\", "/")
("нужны только" два \
, потому что мы используем только "голый" Python, а не re
)
replace()
.s.replace(r'\\', r'/')
- person Srdjan M.   schedule 28.02.2018