免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4954 | 回复: 4
打印 上一主题 下一主题

如何取得兩個<TAG>中間的Strings... [复制链接]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-08 08:51 |只看该作者 |倒序浏览
在google上面看到的..也許有人有用..
<br>;
<pre>;
ccc
ddd
eee
</pre>;
<br>;
1.
print join '<br>;'=>;map{ chomp;$_} grep{/<pre>;..m{</pre>;} <DATA>;;
會打印出
<pre>;<br>;ccc<br>;ddd<br>;eee<br>;</pre>;
2.不包含<pre>;</pre>;
print join '<br>;'=>;map{chomp;$_} grep{/<pre>;/..m{</pre>;} &amp;&amp; !/<pre>;/ &amp;&amp; !m{</pre>;}}<DATA>;;

3.不包含<pre>;</pre>;
print join '<br>;'=>;map{chomp;$_} grep{$r=/<pre>;/..m{</pre>;} &amp;&amp; $r>;1 &amp;&amp; $r!~/e/i}<DATA>;;

4.不包含<pre>;</pre>;
my @line=grep{/<pre>;/..m{</pre>;}/} <DATA>;;
chomp @line;
shift @line;
pop   @line;
print join '<br>;'=>;@line;

四種方法都可以取出兩個TAG中間的Strings.....
但是第一種方式會保留TAG..其他不會..
這個用法應該蠻好用的才對...

论坛徽章:
0
2 [报告]
发表于 2003-05-13 18:10 |只看该作者

如何取得兩個<TAG>中間的Strings...

good!3Q!

论坛徽章:
0
3 [报告]
发表于 2010-01-02 18:22 |只看该作者

回复 #1 apile 的帖子

学习~顺带整理下,转成了简体 ^_^

在google上面看到的..也许有人有用..

<br>
<pre>
ccc
ddd
eee
</pre>
<br>

1.
print join '<br>' => map { chomp; $_ } grep { /<pre>/ .. m{</pre>} } <DATA>;
结果:<pre><br>ccc<br>ddd<br>eee<br></pre>

2.不包含<pre></pre>
print join '<br>'=>map{chomp;$_} grep{/<pre>/..m{</pre>} && !/<pre>/ && !m{</pre>}}<DATA>;
结果:ccc<br>ddd<br>eee

3.不包含<pre></pre>
print join '<br>'=>map{chomp;$_} grep{$r=/<pre>/..m{</pre>} && $r>1 && $r!~/e/i}<DATA>;
结果:<pre><br>ccc<br>ddd<br>eee<br></pre>

4.不包含<pre></pre>
my @line=grep{/<pre>/..m{</pre>}/} <DATA>;
chomp @line;
shift @line;
pop   @line;
print join '<br>'=>@line;

结果:ccc<br>ddd<br>eee


四种方法都可以取出两个TAG中间的Strings.....
但是第一种方式会保留TAG..其他不会..
这个用法应该蛮好用的才对...

[ 本帖最后由 mwm5 于 2010-1-2 19:11 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2010-01-02 18:59 |只看该作者

回复 #1 apile 的帖子

第二个有些问题
会打印出<pre>r>ccc<br>ddd<br>eee<br></pre><br><br>

print grep { /<pre>/..m{</pre>} && !/<pre>/ &&!m{</pre>} } <DATA>;
输出的结果是

<pre>
ccc
ddd
eee
</pre>
<br>

论坛徽章:
0
5 [报告]
发表于 2010-01-02 19:09 |只看该作者

回复 #4 mwm5 的帖子

print grep { (/<pre>/..m{</pre>}) && !/<pre>/ &&!m{</pre>} } <DATA>;

OK了 ^_^
range operator上下文的问题。。hoho
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP