在我学习 flex 的过程中,我有一个扫描仪回声输入添加行号。
在每一行之后,我显示一个计数器并增加它。
问题是在显示的末尾总是有一个单独的行号。
我需要一个正则表达式,它将忽略除最后一个之外的所有换行符。
我试过[\n/<<EOF>>]无济于事。
有什么想法吗?
我不知道什么正则表达式引擎使用 Flex 但你可以使用这个正则表达式:
\z
Run Code Online (Sandbox Code Playgroud)
\z 在字符串的最后断言位置。
仅匹配字符串的结尾。与 $ 不同,这不受多行模式的影响,并且与 \Z 不同,它不会在字符串末尾的尾随换行符之前匹配。

如果上面的正则表达式不起作用,那么你可以使用这个:
(?<=[\S\s])$
Run Code Online (Sandbox Code Playgroud)
编辑:由于 flex 似乎与其他正则表达式引擎的工作方式略有不同,因此您可以使用此正则表达式:
[\s\S]$
Run Code Online (Sandbox Code Playgroud)
获取每行的最新字符。然后你可以迭代所有行,直到得到最后一行。这里有一个在线 flex 正则表达式引擎工具:
http://ryanswanson.com/regexp/#start

| 归档时间: |
|
| 查看次数: |
11158 次 |
| 最近记录: |