找出10行以内包含两个指定字符串的段落
时间:2011-01-20
来源:互联网
本帖最后由 paktc 于 2011-01-20 11:27 编辑
在文本中,找出10行以内 里面有
"folder"也有"size"的段落。
比如:
1 : folder size <- 这一行有folder 和size
=======
1 : folder size <-
2 :
3 : fsafdsa
4 : f size <- 这一段有folder 和size
=======
1 : folder size <-
2 :
3 : fsafdsa
4 : f size
5 : ds
6 : fsd folder <- 这一段有size 和folder
=======
4 : f size <-
5 : ds
6 : fsd folder <- 这一段有size 和folder
=======
我只是…… 偶然在搜索的时候想要用到这样的方式。
好像蛮有思考空间的。 如果说同时出现在同一行的话大概就是以上的情况
貌似可以先筛选出所有包含字串A 和字串B的行号然后对比出来额,编写中
在文本中,找出10行以内 里面有
"folder"也有"size"的段落。
比如:
QUOTE:
folder size
fsafdsa
f size
ds
fsd folder
f
sa s
fsd
fsd folder
f
d346s
f346
3521
f35
2365
4523161
dfs2355
6436
3147
2666666size 这个超出10行
fsafdsa
f size
ds
fsd folder
f
sa s
fsd
fsd folder
f
d346s
f346
3521
f35
2365
4523161
dfs2355
6436
3147
2666666size 这个超出10行
1 : folder size <- 这一行有folder 和size
=======
1 : folder size <-
2 :
3 : fsafdsa
4 : f size <- 这一段有folder 和size
=======
1 : folder size <-
2 :
3 : fsafdsa
4 : f size
5 : ds
6 : fsd folder <- 这一段有size 和folder
=======
4 : f size <-
5 : ds
6 : fsd folder <- 这一段有size 和folder
=======
我只是…… 偶然在搜索的时候想要用到这样的方式。
好像蛮有思考空间的。 如果说同时出现在同一行的话大概就是以上的情况

作者: paktc 发布时间: 2011-01-20
- use strict;
-
- my $str=join '^&*',<DATA>;
- $str=~s/(\r|\n)//g;
- my $i;
- $str=~m{(folder.*?size)(?{evalsub($1)})(?!)};
- $str=~m{(size.*?folder)(?{evalsub($1)})(?!)};
-
- sub evalsub(){
- my $tmp=shift;
- my @tmp=split /\^\&\*/,$tmp;
- if($#tmp<9){
- print "第".$i++."个:\n";
- my $j=0;
- foreach(@tmp){
- print "row".$j++."\t: $_\n";
- }
- }
- }
-
- __DATA__
- folder size
-
- fsafdsa
- f size
- ds
- fsd folder
- f
- sa s
- fsd
- fsd folder
- f
- d346s
- f346
- 3521
- f35
- 2365
- 4523161
- dfs2355
- 6436
- 3147
- 2666666size
作者: toniz 发布时间: 2011-01-20
QUOTE:
[quote]perl k.t
第0个:
row0 :folder size
第1个:
row0 :folder size
row1 :
row2 :fsafdsa
row3 :f size
第2个:
row0 :size
row1 :
row2 :fsafdsa
row3 :f size
row4 :ds
row5 :fsd folder
第3个:
row0 :size
row1 :ds
row2 :fsd folder
第4个:
row0 :size
row1 :ds
row2 :fsd folder
row3 :f
row4 :sa s
row5 :fsd
row6 :fsd folder
第0个:
row0 :folder size
第1个:
row0 :folder size
row1 :
row2 :fsafdsa
row3 :f size
第2个:
row0 :size
row1 :
row2 :fsafdsa
row3 :f size
row4 :ds
row5 :fsd folder
第3个:
row0 :size
row1 :ds
row2 :fsd folder
第4个:
row0 :size
row1 :ds
row2 :fsd folder
row3 :f
row4 :sa s
row5 :fsd
row6 :fsd folder
[/quote]
作者: toniz 发布时间: 2011-01-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28