给出如下文字:
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:.*$
连连呢?感谢
答案 0 :(得分:2)
你可能需要跳过前x行...你也可以锚定^可能导致你不匹配。
尝试
(?:.*[\r\n]*)*Boss:.*(?:.*[\r\n]*)Date:.*
答案 1 :(得分:2)
^Boss:.*[\r\n]+Date:.*$
行锚^
和$
是零宽度断言;他们声称某些条件适用而不消耗任何字符。
^
表示当前位置是输入的开头,或者紧接着是行分隔符。 $
表示当前位置是输入的结尾,或紧接着是行分隔符。但他们都没有使用行分隔符,因此$^
永远不会匹配。 [\r\n]+
匹配(并使用)一个或多个回车符或换行符,因此它处理三种最常见的行分隔符:\r
(较旧的Mac标准),\r\n
(Windows /网络标准)和\n
(Unix / Linux / Mac OS X /几乎其他所有东西)。
答案 2 :(得分:0)
如果您的文件大小不是GB范围
ruby -e 'a=File.read("file"); p a.split(/\n/)[-3..-1] '