我需要找到\1, \2 ... \n
来匹配字符串中的模式。
以下是示例解决方案中的代码:
re_parts = [r'\{}'.format(i+1) for i in range(len(cut_parts))] # suppose len(cut_parts) = 2
输出为['\\1', '\\2']
我的第一个问题是为什么它会以['\\1', '\\2']
而不是['\1', '\2']
的形式出现?我认为该数字将放在'\{}'.format(1)
和'\{}'.format(2)
的大括号中。
第二个问题是我的第一个问题的后续工作:在一个赋值中,re.sub()
函数生成我想要的内容:在给定的字符串中找到第一个和第二个对应的输出,并用定界符“ |”:
re.sub('(A[ACGT]T)(AAT)', '\\1|\\2', 'GCATAGTAATGTATTAATGGC')
但是,如果我将以上编码更新为re.sub('(A[ACGT]T)(AAT)', '\1|\2', 'GCATAGTAATGTATTAATGGC')
,即单个反斜杠,则结果为GCAT\x01|\x02GT\x01|\x02GGC
。我已经在网上搜索,但失败了。此输出是什么意思?
谢谢。