Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex macOS、PyCharm、2.7 python解释器-如何在每次出现给定字符后追加特定字符?_Regex_Macos_Python 2.7_Pycharm - Fatal编程技术网

Regex macOS、PyCharm、2.7 python解释器-如何在每次出现给定字符后追加特定字符?

Regex macOS、PyCharm、2.7 python解释器-如何在每次出现给定字符后追加特定字符?,regex,macos,python-2.7,pycharm,Regex,Macos,Python 2.7,Pycharm,假设我有一个带有原始字符串赋值的变量,如下所示 TrackVariable = r'one\two\three' TrackVariable将在整个代码中不断变化;但是,它始终是一个原始字符串,可能包含也可能不包含任何数量的\字符 原始字符串甚至可能在一行中包含多个\字符,如下例所示 TrackVariable = r'one\\\two\\\three' 如果我手动命名一个文件one\two\three.txt并将其拖到终端窗口中,它会自动格式化为one\\two\\three.txt 如

假设我有一个带有原始字符串赋值的变量,如下所示

TrackVariable = r'one\two\three'
TrackVariable
将在整个代码中不断变化;但是,它始终是一个原始字符串,可能包含也可能不包含任何数量的
\
字符

原始字符串甚至可能在一行中包含多个
\
字符,如下例所示

TrackVariable = r'one\\\two\\\three'
如果我手动命名一个文件
one\two\three.txt
并将其拖到终端窗口中,它会自动格式化为
one\\two\\three.txt

如果我手动命名一个文件
one\\two\\three.txt
并将其拖到终端窗口中,它会自动格式化为
one\\\\two\\\\three.txt

最后,如果我手动命名一个文件
one\\\ two\\\ three.txt
并将其拖到终端窗口中,它会自动格式化为
one\two\txt

如何编写正则表达式(或其他类型的代码),以上述方式自动重新格式化变量。我假设有某种代码会在每次出现
\
之后附加
\
。我该怎么做?

我问这个问题是因为我需要运行一个shell脚本,其中
TrackVariable
将是文件路径的一部分

编辑:在运行shell脚本时,还有许多其他字符必须转义。是否有一种简单的方法可以自动转义任何需要转义为原始字符串赋值的变量的字符

以下是需要转义的字符,每个字符之间用空格隔开(我已经知道如何转义新行)

|&;( ) < > ~ * ? ! $ # [ ] { } ' " `

好吧,我简直不敢相信我真的算出了,而且比我想象的要简单得多。我真的花了好几个小时试图做到这一点,但完全巧合的是,我在发布问题后一分钟就找到了答案

import re

TrackVariable = r'D\o y\\ou g\\\et it y\\\\et?'

TrackVariable = re.sub(r'(\\)', r'\1\\', TrackVariable)

print(TrackVariable)
打印-->
D\\o y\\\\ou g\n将其设置为y

import re

TrackVariable = r'D\o y\\ou g\\\et it y\\\\et?'

TrackVariable = re.sub(r'(\\)', r'\1\\', TrackVariable)

print(TrackVariable)