<?php 
$str = '<div id="Div3" class="modResumeInfo">
<div class="title" onclick="clickLabel(rsmEduExCt)">
<div class="dcrL dcrArrowGreen"></div>
<h3>外语能力</h3>
</div>
<div id="Div4" class="content">    
    
<div class="workExCom">英语:读写能力精通 | 听说能力熟练</div><div class="workExCom">韩语:读写能力一般 | 听说能力良好</div><div class="workExCom">德语:读写能力一般 | 听说能力一般</div></div>    
</div><!--modResumeInfo结束-->
我想取出英语 韩语 德语这三个词,用正则表达是怎么写?
用这种格式:
前字符串(?<content>[\s\S]*?)后字符串 

解决方案 »

  1.   


    $str = '<div id="Div3" class="modResumeInfo">
    <div class="title" onclick="clickLabel(rsmEduExCt)">
    <div class="dcrL dcrArrowGreen"></div>
    <h3>外语能力</h3>
    </div>
    <div id="Div4" class="content"><div class="workExCom">英语:读写能力精通 | 听说能力熟练</div><div class="workExCom">韩语:读写能力一般 | 听说能力良好</div><div class="workExCom">德语:读写能力一般 | 听说能力一般</div></div>
    </div><!--modResumeInfo结束-->';preg_match_all('@<div class="workExCom">(.+):(.+)</div>@u',$str,$match);var_dump($match[1]);
    页面输出:
    array(3) { [0]=>  string(6) "英语" [1]=>  string(6) "韩语" [2]=>  string(6) "德语" } 
      

  2.   

    $str=<<< TEXT
    <div id="Div3" class="modResumeInfo">
    <div class="title" onclick="clickLabel(rsmEduExCt)">
    <div class="dcrL dcrArrowGreen"></div>
    <h3>外语能力</h3>
    </div>
    <div id="Div4" class="content">   
        
    <div class="workExCom">英语:读写能力精通 | 听说能力熟练</div><div class="workExCom">韩语:读写能力一般 | 听说能力良好</div><div class="workExCom">德语:读写能力一般 | 听说能力一般</div></div>   
    </div><!--modResumeInfo结束-->TEXT;preg_match_all("/<div\s+class=\"workExCom\">(.*):/",$str,$arr);
    print_r($arr);