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中,
[^]
是无效的模式。如何指定介于/**/之间的所有内容。我以为这是一种方法。