以下正则表达式应仅匹配不以#字符开头的行,后跟任何内容。
^[^#].*
但是如果缓冲区在它之前包含一个空行,则它与下一行匹配,即使它以#。
开头对于以下输入,它失败
This line is matched as expected
# this line should not be matched, but it does if the above line is empty !?
答案 0 :(得分:3)
你可以这样解决:
^[^#\r\n].*
原始表达式^[^#].*
的问题是[^#]
与换行符(空行)匹配,从而允许点.
匹配在空行之后的整行,因此点实际上并不匹配换行符,[^#]
就是那个行。