簡體   English   中英

python re.sub正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM