[英]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.