pythonre.sub公司正则表达式

2024-05-19 21:56:45 发布

您现在位置:Python中文网/ 问答频道 /正文

Python一直返回一个带有断开字符的字符串。在

Python

test = re.sub('handle(.*?)', '<verse osisID="lol">\1</verse>', 'handle a bunch of random text here.')
print test

我想要什么

^{pr2}$

我得到了什么

<verse osisID="lol">*broken character*</verse>a bunch of random text here.

Tags: of字符串texttestrehererandom字符
2条回答

下面的代码是在python3.6下测试的

import re 

test = 'a bunch of random text here.'
resp = re.sub(r'(.*)',r'<verse osisID="lol">\1</verse>',test)
print (resp)

<verse osisID="lol">a bunch of random text here.</verse>

您应该转义\字符或使用r''原始字符串:

>>> re.sub('handle(.*?)', r'<verse osisID="lol">\1</verse>', 'handle a bunch of random text here.')
'<verse osisID="lol"></verse> a bunch of random text here.'

如果没有r''原始字符串文本,反斜杠将被解释为转义代码。也可以将反斜杠加倍:

^{pr2}$

注意,只替换单词handle,其中.*?模式至少匹配0个字符。去掉问号,它将符合您的预期输出:

>>> re.sub('handle(.*)', r'<verse osisID="lol">\1</verse>', 'handle a bunch of random text here.')
'<verse osisID="lol"> a bunch of random text here.</verse>'

相关问题 更多 >