关于正则表达式的问题
时间:2011-07-28
来源:互联网
data demog;
.........
run;
proc data=demog;
.........
run;
data ecg;
.........
run;
data pk;
.........
output;
run;
我想写一段程序输出含有output的那一段data...run;文本,这是我写的正则:
/(^(data).*?(.*?\s*output;?){1,}.*(run;)$)/xsgm
但是却将上面的整段文字都输出来了。
为了避免这种情况,我想把文本中含有data...run;的每一段文本都分离出来,然后在这些文本中输出含有output的那一段文本,但是不知道怎么实现,希望各位高手能给些建议。谢谢了。
作者: potato1234 发布时间: 2011-07-28
Perl code
#!/usr/bin/perl open FH, "<test.txt" or die "$!\n"; $lines = join("\n", <FH>); while ($lines =~ m/(data.*?run;)/sg) { $part = $1; while ($part =~ m/(output.*)/g) { print "$1\n"; } }
作者: longhuahuang 发布时间: 2011-07-28
看一下这段程序能不能帮到你?
Perl code
#!/usr/bin/perl
open FH, "<test.txt" or die "$!\n";
$lines = join("\n", <FH>);
while ($lines =~ m/(data.*?run;)/sg) {
$part = $1;
while ($part =~ m/(output.*)/g) ……
作者: potato1234 发布时间: 2011-07-28
data pk;
.........
output;
run;
谢谢您的答复
看一下这段程序能不能帮到你?
Perl code
#!/usr/bin/perl
open FH, "<test.txt" or die "$!\n";
$lines = join("\n", <FH>);
while ($lines =~ m/(data.*?run;)/sg) {
$part = $1;
while ($part =~ m/(output.*)/g) ……
作者: potato1234 发布时间: 2011-07-28
#!/usr/bin/perl open FH, "<test.txt" or die "$!\n"; $lines = join("\n", <FH>); while ($lines =~ m/(data.*?run;)/sg) { print "$1\n"; }
作者: longhuahuang 发布时间: 2011-07-28
Perl code
#!/usr/bin/perl open FH, "<test.txt" or die "$!\n"; $lines = join("", <FH>); while ($lines =~ m/(data.*?run;)/sg) { $part = $1; if ($part =~ m/output;/sg) { print "$part\n"; } }
作者: longhuahuang 发布时间: 2011-07-28
作者: potato1234 发布时间: 2011-07-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28