问个嵌套匹配的正则
时间:2011-07-05
来源:互联网
$str=<<<TEXT
options nofmterr;
data ecg;
set hu.ecg;
tpd=scan(egtpd,1, ' ');
where substr(cpevent, 1, 9)^='SCREENING';
for tpd=1 to 10;
output;
put tpd=;
output;
output
run;
data ecg;
........
run;
data pk;
........
output;
......
output;
.....
output;
run;
TEXT;
上面的文本中 只把
data xx
出现三条output
run;
这个代码匹配出来
意思就是 在data ... run结构中如果output出现三次 则匹配出来
能用一条正则匹配出来吗?
作者: yakczh 发布时间: 2011-07-05
- $str=<<<TEXT
-
- options nofmterr;
- data ecg;
- set hu.ecg;
- tpd=scan(egtpd,1, ' ');
- where substr(cpevent, 1, 9)^='SCREENING';
- for tpd=1 to 10;
- output;
- put tpd=;
- output;
- output
- run;
-
-
-
- data ecg;
- ........
- run;
- data pk;
- ........
- output;
- ......
- output;
- .....
- output;
- run;
- TEXT;
-
- preg_match_all('/data [a-z0-9]+;((?:[\d\D]*output[\d\D]*){3})run;/iU', $str, $matches);
- echo '<pre>';print_r($matches[1]);
- /*
- 输出结果:
- Array
- (
- [0] =>
- set hu.ecg;
- tpd=scan(egtpd,1, ' ');
- where substr(cpevent, 1, 9)^='SCREENING';
- for tpd=1 to 10;
- output;
- put tpd=;
- output;
- output
-
- [1] =>
- ........
- run;
- data pk;
- ........
- output;
- ......
- output;
- .....
- output;
-
- )
- */
作者: yangball 发布时间: 2011-07-05
回复 yangball
匹配的第二项不对,应该是 data pk; 。。。 run;中间的内容
匹配的第二项不对,应该是 data pk; 。。。 run;中间的内容
作者: yakczh 发布时间: 2011-07-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28