我一直在与Lex合作,遇到了在C程序中找到 comments 并在最终输出中删除它们的问题。为了实现这一点,我需要确定*/
的任何出现(这是传统多行注释的结束方式!)。
然后我的问题被简化为接受除*/
以外的任何字符序列的子问题。我尝试了几种方法来实现这一目标。我试过了:[^*\/]
,合理地说它不起作用。任何帮助或建议都很明显。
答案 0 :(得分:1)
您需要匹配任何字符序列,后跟*/
双字符序列。一个积极的前瞻你将实现这一目标。对于可能出现的多个*/
次出现,您需要一个正面的后视或文本的开头((?<=^|\*\/)
):
(?<=^|\*\/).*?(?=\*\/)
答案 1 :(得分:1)