取得兩個間的Strings

在google上面看到的..也許有人有用..
<br>
<pre> ff
ccc
ddd
eee
11</pre>
<br>
<pre>jkjl</pre>

1.
print join ' '=>map{ chomp;$_} grep{/<pre>/..m{</pre>}} <DATA>;
會打印出
<pre> ff ccc ddd eee 11</pre> <pre>jkjl</pre>

2.不包含<pre></pre>
print join ' '=>map{chomp;$_} grep{/<pre>/..m{</pre>} and !/<pre>/ and !m{</pre>}} <DATA>;
打印出ccc ddd eee

3.不包含<pre></pre>
print join ' '=>map{chomp;$_} grep{$r=/<pre>/..m{</pre>} and $r>1 and $r!~/e/i}<DATA>;
打印出ccc ddd eee

4.不包含<pre></pre>
my @line=grep{/<pre>/..m{</pre>}} <DATA>;
chomp @line;
shift @line;
pop @line;
print join ' '=>@line;
打印出ccc ddd eee 11</pre>

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

改进
print join ' '=>map{chomp;s/.*?<pre>//;s!</pre>.*?!!;$_} grep{/<pre>/..m{</pre>}} <DATA>;
打印出 ff ccc ddd eee 11 jkjl

你可能感兴趣的:(Google)