0
我想用Python中的正規快件是用Perl編寫爲:如何將此perl正則表達式轉換爲python?
$text =~ s/\[\[category:([^|\]]*)[^]]*\]\]/[[$1]]/ig;
任何人有關於如何做到這一點的想法?我還需要提取捕獲組(Perl中的$1
)。
我想用Python中的正規快件是用Perl編寫爲:如何將此perl正則表達式轉換爲python?
$text =~ s/\[\[category:([^|\]]*)[^]]*\]\]/[[$1]]/ig;
任何人有關於如何做到這一點的想法?我還需要提取捕獲組(Perl中的$1
)。
在Python中,您使用re.sub
而不是perl s///
運算符。您將它定義爲正則表達式字符串作爲第一個參數。 「原始字符串」的特殊語法不需要\
轉義,就像r'\'一樣,可以幫助你。替代作爲第二個參數,您也使用\1
而不是$1
作爲後端參考。在Python中沒有主題變量這樣的事情,所以你需要顯式傳遞源字符串作爲第三個參數。然後,您將正則表達式標誌添加爲專用的命名參數,它們的值存儲在re.I
,re.S
,...常量中。你不需要g
標誌作爲re.sub
是全球默認:
import re
text = re.sub(r'\[\[category:([^|\]]*)[^]]*\]\]', '[[\1]]',
text, flags=re.I)
使用'\ 1'在蟒蛇逆向引用。 're.sub'替換's ///'看看這個:http://stackoverflow.com/questions/5984633/python-re-sub-group-number-after-number – chilemagic
你是什麼意思的「實現」?你想在Python中實現一個正則表達式引擎,還是隻想找到與你給出的Perl正則表達式相當的Python正則表達式?你看過Python在線文檔嗎?它是完整的,只需要一點研究,你應該能夠弄清楚。 –