Regex 要匹配文件中最后一个换行符的正则表达式

Regex 要匹配文件中最后一个换行符的正则表达式,regex,flex-lexer,Regex,Flex Lexer,在我学习flex的过程中,我使用了一个扫描器回波输入来添加行号 在每行之后,我显示一个计数器并递增它 问题是显示屏的末端总是有一个单行编号 我需要一个正则表达式,它将忽略除最后一个之外的所有换行符 我尝试了[\n/],但没有结果 有什么想法吗?您是否尝试过简单地执行以下操作: \n$ \n匹配换行符,$匹配字符串结尾。我不知道什么正则表达式引擎使用Flex,但您可以使用此正则表达式: \z [\s\S]$ \z断言字符串最末端的位置 仅匹配字符串的结尾。与$不同,这不受 多行模式,与

在我学习flex的过程中,我使用了一个扫描器回波输入来添加行号

在每行之后,我显示一个计数器并递增它

问题是显示屏的末端总是有一个单行编号

我需要一个正则表达式,它将忽略除最后一个之外的所有换行符

我尝试了
[\n/]
,但没有结果


有什么想法吗?

您是否尝试过简单地执行以下操作:

\n$


\n
匹配换行符,
$
匹配字符串结尾。

我不知道什么正则表达式引擎使用Flex,但您可以使用此正则表达式:

\z
[\s\S]$

\z断言字符串最末端的位置

仅匹配字符串的结尾。与$不同,这不受 多行模式,与\Z相反,在 字符串末尾的尾随换行符

如果上述正则表达式不起作用,则可以使用此正则表达式:

(?<=[\S\s])$
以获取每行的最新字符。然后您可以迭代所有行,直到得到最后一行。这里有一个在线flex regex引擎工具:


在正则表达式下方尝试,它将在行尾搜索新行字符

\n$

没有骰子。它收集了所有的新词。我不熟悉flex。你能提供一些你如何使用这个表达式的上下文吗?可能会发布代码示例或函数引用的链接?我这么说是因为如果你使用的是一行一行地处理你的输入并将正则表达式应用到每一行,那么单用正则表达式是不可能解决你的问题的。这是一个很酷的网站!谢谢你的链接。这两个正则表达式都不成功,但我喜欢你在第二个正则表达式中所做的@也许不是,我已经用一种可能对你有帮助的方法更新了我的答案。顺便说一句,我还添加了一个指向在线flex regex引擎工具的链接。希望能帮上忙谢谢,我也试过了。它拾取所有新行,而不仅仅是最后一行。这适用于我的情况,并仅选择最后一行。在学习flex的过程中,请使用
flex lexer
标记,而不是
flex
标记。后者用于Adobe/Apache Flex问题。