我无法弄清楚如何在正则表达式中匹配注释而不是HTML十六进制。例如,我希望脚本匹配
#I'm a comment, yes I am
但不是
#FF33AF
答案 0 :(得分:2)
你可以使用负向前瞻。从python文档:
(?!...)的
匹配如果......下一个不匹配。这是一个负面的先行断言。例如,Isaac(?!Asimov)只有在没有'Asimov'的情况下才会匹配'Isaac'。
答案 1 :(得分:2)
要正确完成工作,您需要一个解析器而不是正则表达式匹配器。例如,“#decade”是注释还是颜色名称?没有一点背景你就无法知道。
答案 2 :(得分:1)
嗯,显而易见的正则表达式将是:
(?m-:^\s*#(?![0-9A-Fa-f]{6}).*$)
这将为您提供以“#”开头的所有行。从你的帖子你不是非常具体,但我认为这是你正在寻找的。
更新:
更正为仅允许六个:
(?m-:^\s*#(?![0-9A-Za-z]{6}\s*$).*$)