[英]python re.sub regex
Python不断返回带有断字符的字符串。
蟒蛇
test = re.sub('handle(.*?)', '<verse osisID="lol">\1</verse>', 'handle a bunch of random text here.')
print test
我想要的是
<verse osisID="lol">a bunch of random text here.</verse>
我得到什么
<verse osisID="lol">*broken character*</verse>a bunch of random text here.
您应该转义\\
字符或使用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''
原始字符串文字,则反斜杠将解释为转义码。 您也可以将反斜杠加倍:
>>> '\1'
'\x01'
>>> '\\1'
'\\1'
>>> r'\1'
'\\1'
>>> print r'\1'
\1
请注意,您只替换那里的单词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>'
下面的代码在python 3.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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.