添加' r' python变量的前缀

时间:2016-12-15 02:20:49

标签: python-3.x string-prefix

我有

的字符串变量
temp = '1\2\3\4'

我想添加前缀' r'到字符串变量并获取

r'1\2\3\4'

这样我就可以根据' \'分割字符串。我尝试了以下方法:

r'temp'
'r' + temp
r + temp

但以上都没有。有一个简单的做法吗?我正在使用python 3.我还尝试使用

对字符串进行编码
temp.encode('string-escape')

但它返回以下错误

LookupError: unknown encoding: string-escape

3 个答案:

答案 0 :(得分:4)

r是字符串文字的前缀。这意味着,r"1\2\3\4"在创建字符串值时不会将\解释为转义符,而是将\保留为字符串中的实际字符。因此,r"1\2\3\4"将有七个字符。

你已经有了字符串值:没有什么可以解释的。您不能让r前缀影响变量,只能影响文字。

您的temp = "1\2\3\4"会将反斜杠解释为转义符,创建字符串'1\x02\x03\x04'(四个字符的字符串),然后将此字符串分配给变量temp。无法追溯重新解释原始文字。

编辑:鉴于最近的评论,您实际上似乎没有字符串"1\2\3\4"。如果您有一个有效的路径,可以使用

拆分它
path.split(r'\')

path.split('\\')

但你可能也不需要那个;相反,您可能希望将路径拆分为目录和文件名,最好由os.path functions完成。

答案 1 :(得分:1)

会不会只是re.escape(temp)

例如,用例尝试动态生成涉及单词边界的模式。那你就可以做到

r'\b' + re.escape(temp) + r'\b'

答案 2 :(得分:-1)

只是在搜索中将r添加到变量中,请执行此操作r +"" + temp。 例如 -

import re
email_address = 'Please contact us at: support@datacamp.com'
searchString = "([\w\.-]+)@([\w\.-]+)"
re.serach(r""+searchString, email_address)