正则表达式与新行不匹配

时间:2013-11-14 14:27:27

标签: regex emacs

以下正则表达式应仅匹配不以#字符开头的行,后跟任何内容。

^[^#].*

但是如果缓冲区在它之前包含一个空行,则它与下一行匹配,即使它以#。

开头

对于以下输入,它失败

This line is matched as expected

# this line should not be matched, but it does if the above line is empty !?

1 个答案:

答案 0 :(得分:3)

你可以这样解决:

^[^#\r\n].*

原始表达式^[^#].*的问题是[^#]与换行符(空行)匹配,从而允许点.匹配在空行之后的整行,因此点实际上并不匹配换行符,[^#]就是那个行。

Regex101 Demo