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)