我一直在努力应对一些负面的前瞻和后视模式无济于事。我需要一个正则表达式,它将在两个正斜杠之前匹配字符串中的所有内容,除非所述字符在引号中。
例如,在字符串"//this is a string//" //A comment about a string about strings
中,
子串"//this is a string//"
应该匹配,其余的被忽略。
如您所见,重点是排除任何单行注释(C ++ / Java样式)。
谢谢你提前。
答案 0 :(得分:2)
你走了:
^([^/"]|".+?"|/[^/"])*
答案 1 :(得分:1)
怎么样
\/\/[^\"']*$
如果//
或"
后面没有'
,则匹配"
。这不完全符合您的要求,但非常符合您的要求。它只会阻止包含'
或// I like "bread".
的评论,例如
{{1}}
可能比没有解决方案好。
答案 2 :(得分:0)
基于python / regex的评论转发器我写了一段时间,如果它有用:
def remcomment(line):
for match in re.finditer('"[^"]*"|(//)', line):
if match.group(1):
return line[:match.start()].rstrip()
return line