我有
的字符串变量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
答案 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)