问题; 我正在尝试删除输入字符串中每次出现的字符串inbetween并包含/ * * /。
input = /* comment */ variable owner; /* comment */
output = variable owner;
目前我尝试过:
output = re.sub("//*[^]+*//", '', input)
output = re.sub("/*[^]+*//", '', input)
任何指导都将不胜感激。
答案 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?
摆脱额外的空间。