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

Python-正则表达式,删除两个分隔符之间的内容,python,regex,replace,delimiter,Python,Regex,Replace,Delimiter,问题我正在尝试删除中间的字符串,并为输入字符串中的每个事件包含/**/字符串 input = /* comment */ variable owner; /* comment */ output = variable owner; 目前,我已尝试: output = re.sub("//*[^]+*//", '', input) output = re.sub("/*[^]+*//", '', input) 任何指导都将不胜感激。您不能在Python中使用[^]模式,它是一种仅用于JavaS

问题我正在尝试删除中间的字符串,并为输入字符串中的每个事件包含/**/字符串

input = /* comment */ variable owner; /* comment */
output = variable owner;
目前,我已尝试:

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

任何指导都将不胜感激。

您不能在Python中使用
[^]
模式,它是一种仅用于JavaScript的模式,用于匹配任何字符(如Python中的
(?s)。

但是,您可以使用更好的多行注释匹配正则表达式:

/\*[^*]*\*+(?:[^/*][^*]*\*+)*/
看。它是匹配
/*
的展开等价物,然后是第一个
*/
之前的任何0+字符

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

您可以尝试以下方法:

output = re.sub("/\*[^\*]+\*/", '', input)
否则,您可以尝试以下方法:

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

删除额外的空间。

在Python中,
[^]
是无效的模式。如何指定介于/**/之间的所有内容。我以为这是一种方法。