Regex 返回使用perl找到字符串的页码/块号
我有一个这样结构的文本文件Regex 返回使用perl找到字符串的页码/块号,regex,perl,Regex,Perl,我有一个这样结构的文本文件 --- Page 01 --- blah blahblah blahblahblah --- Page 01 --- --- Page 02 --- blah asdf svlah blahblahsafblah --- Page 02 --- --- Page 03 --- nothing here --- Page 03 --- 我想要一种方法来查找关键字blah出现的页码a,而不考虑出现的频率 有什么想法吗?非常感谢 编辑: 我发现下面的一行代码似乎可以实现这
--- Page 01 ---
blah blahblah
blahblahblah
--- Page 01 ---
--- Page 02 ---
blah asdf svlah
blahblahsafblah
--- Page 02 ---
--- Page 03 ---
nothing here
--- Page 03 ---
我想要一种方法来查找关键字blah
出现的页码a,而不考虑出现的频率
有什么想法吗?非常感谢
编辑:
我发现下面的一行代码似乎可以实现这个目的,但输出有空行。它怎么了?如果我删除\n
我会得到一长串数字…:(
输出:
01
02
这里发生的是,从“blah”的第一个匹配开始,它满足所有行,直到找到“Page(\d+)” 试试这个:
perl -ne 'print "$1$2" if /blah/ .. /--- Page (\d+) ---(\n)/'
是的,你的工作正常。
perl-0777-ne'print“$1\n”while/blah.*.---Page(\d+)/gs'
也是我自己发现的。
perl -ne 'print "$1$2" if /blah/ .. /--- Page (\d+) ---(\n)/'