2014-02-21 114 views
0

我有一个问题:PHP的正则表达式标签内容标签

我有这样的文字字符串变量:

$subjet = "<section> 
    <article id="s1n1"> 
     <img src=".." alt=".."> 
     <p id="pa1"><p> 
     <p id="pa2"><p> 
     <p id="pa3"><p> 
    </article> 
    <article id="s1n2"> 
     </h2></h2> 
     <p id="pa4"><p> 
     <p id="pa5"><p> 
     <p id="pa6"><p> 
    </article> 
    <article id="s1n3"> 
     </h2></h2> 
     <p id="pa7"><p> 
     <p id="pa8"><p> 
     <p id="pa9"><p> 
    </article> 
</section>" 

,我试图让与正则表达式的内容,

'/<article id="s1n1">(.*?)<\/article>/' 

只是第一篇文章标签的内容,但我的正则表达式不起作用:/

你能帮我吗?

+1

你是否在字符串中引用了这些引号? – MLeFevre

+0

您的预期产量是多少? –

回答

2

.默认情况下不匹配换行符。添加s modifier

+1

'/

([\ s \ S] *?)<\/article> /' – aykut

+0

@aykut也应该有效。但我认为这比仅仅添加's'更丑陋 - 尽管可能是个人偏好。 –

+0

只是增加's'而不是'.'不起作用,你必须用'\ S'来捕获其他字符。 – aykut