macOS,PyCharm,2.7 python解释器-如何在每次出现给定字符后追加特定字符? [重复]

问题描述 投票:0回答:1
假设我有一个带有原始字符串分配的变量,如下所示。

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\\\\\\three.txt

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

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

Edit:

运行Shell脚本时,必须转义许多其他字符。是否有一种简单的方法可以自动转义任何需要转义带有原始字符串分配的变量的字符?以下是需要转义的字符(每个字符之间用空格分隔)(我已经知道如何转义换行)

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

regex macos python-2.7 pycharm
1个回答
0
投票
[好吧,我简直不敢相信我只是想通了,这比我想象的要简单得多。我确实花了几个小时试图做到这一点,而巧合的是,在发布问题后一分钟就找到了答案。

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\\\\\\et it y\\\\\\\\et?
© www.soinside.com 2019 - 2024. All rights reserved.