簡體   English   中英

如何將此Perl正則表達式轉換為python?

[英]How do I translate this perl regex into python?

我想在Python中使用以Perl編寫的正則表達式為:

$text =~ s/\[\[category:([^|\]]*)[^]]*\]\]/[[$1]]/ig;

任何人都知道如何做到這一點? 我還需要提取捕獲組(Perl中$1 )。

在python中,您使用re.sub而不是perl s///運算符。 您給它正則表達式字符串作為第一個參數。 不需要\\轉義的“原始字符串”的特殊語法(如r'\\')將為您提供幫助。 替換作為第二個參數,您還使用\\1而不是$1進行反向引用。 python中沒有主題變量之類的東西,因此您需要顯式傳遞源字符串作為第三個參數。 然后添加正則表達式標志作為專用的命名參數,它們的值存儲在re.Ire.S ,...常量中。 您不需要g標志,因為re.sub在默認情況下是全局的:

import re
text = re.sub(r'\[\[category:([^|\]]*)[^]]*\]\]', '[[\1]]', 
              text, flags=re.I)

暫無
暫無

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

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