簡體   English   中英

在正則表達式替換上執行正則表達式?

[英]Perform regex on a regex substitution?

抱歉,如果我在標題中使用了錯誤的單詞,但是這一直困擾着我。

我有一些代碼可以自動鏈接文本內的網址。

r = re.compile(r'\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^%s\s]|/)))')
url_parsed_comment = r.sub(r'<a tabindex=-1 target="blank" href="\1">\1</a>', comment_text)

如您所見,我采用找到的URL,並將其(\\ 1)傳遞到href中的<a>標記內。

我想截斷<a>標記內的文本。 我想要的等效內容在python中看起來像這樣:

link = '<a href="' + url + '">' + url[:10] + '...</a>'

如何使用替換的正則表達式變量來完成此操作? 如何限制字符?

您可以在re.sub使用lambda ,例如:

>>> re.sub(r'([0-9]*)', lambda m: m.group(1)[:2], '---123456789---')
'---12---'

然后,可以通過m.group(1)引用\\1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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