2016-12-27 92 views
1

問題;我想刪除字符串inbetween和包括/ * * /在輸入字符串內的每個事件。Python - 正則表達式,刪除兩個分隔符之間的內容

input = /* comment */ variable owner; /* comment */ 
output = variable owner; 

目前我已經試過這樣做:

output = re.sub("//*[^]+*//", '', input) 
output = re.sub("/*[^]+*//", '', input) 

任何指導,將不勝感激。

+0

在Python中,'[^]'是無效模式。 –

+0

如何指定/ * * /之間的所有內容。我認爲這是一種做法。 – user3447041

回答

1

不能使用在Python [^]模式,它只是一個JavaScript模式來匹配任何字符(如在Python (?s).)。

但是,你可以使用一個更好的多行註釋匹配正則表達式:

/\*[^*]*\*+(?:[^/*][^*]*\*+)*/ 

this regex demo。這是一個(?s)/\*.*?\*/匹配/*,然後任何0+字符到第一個*/的展開相當於。

import re 
s = '/* comment */ variable owner; /* comment */' 
rx = r'/\*[^*]*\*+(?:[^/*][^*]*\*+)*/' 
print(re.sub(rx, '', s)) 

Python demo

0

你可以試試這個:

output = re.sub("/\*[^\*]+\*/", '', input) 

否則,你可以試試這個:

/\*[^\*]+\*/\s? 

擺脫額外的空間。

相關問題