Python - 正则表达式,删除两个分隔符之间的内容

时间:2016-12-27 14:45:46

标签: python regex replace delimiter

问题; 我正在尝试删除输入字符串中每次出现的字符串inbetween并包含/ * * /。

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

目前我尝试过:

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

任何指导都将不胜感激。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你可以试试这个:

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

否则你可以尝试这个:

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

摆脱额外的空间。