繁体   English   中英

REGEX-再次匹配多行

[英]REGEX - Matching again multiple lines

给定文本,例如:

XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX.XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX.XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX. XXXXXXX.

Boss: asdasdasdasd
Date: XXX, XXXXXXXXX

我想匹配最后3行:

这是我正在尝试的方法,但是失败了:

^Boss:.*$^Date:.*$

建议? 谢谢

您可能需要跳过前x行...而且锚点^可能导致您不匹配。

尝试

(?:.*[\r\n]*)*Boss:.*(?:.*[\r\n]*)Date:.*
^Boss:.*[\r\n]+Date:.*$

行锚^$是零宽度的断言。 他们断言某些条件成立而不消耗任何字符。

  • ^表示当前位置是输入的开头,或者紧接在行分隔符之后。
  • $表示当前位置是输入的结尾,或者紧随其后的是行分隔符。

但是它们都不消耗行分隔符,因此$^永远不会匹配。 [\\r\\n]+匹配(并消耗)一个或多个回车符或换行符,因此它可以处理三种最常见的行分隔符类型: \\r (旧的Mac标准), \\r\\n (Windows /网络标准) )和\\n (Unix / Linux / Mac OS X /几乎所有其他内容)。

如果文件大小不在GB范围内

ruby -e 'a=File.read("file"); p a.split(/\n/)[-3..-1] '

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM