哪位高手幫改個正則

來源:互聯網
上載者:User
誰幫改個正則?
這是要匹配的內容:



2013

row1

row2

row3



2014

row1

row2




要匹配dl,並且匹配dl下的dt,和所有的dd,

我是這樣寫的:

 
\s+
(.*?)
(\s+
(.*?)
\s+)*?


但是這個匹配出的結果不太對,dd始終只匹配到了最後一個。這個運算式應該怎麼修改呢? 正則

分享到:


------解決方案--------------------
分開匹配吧,dl 匹配一次,裡面的dt和dd再匹配一次。
------解決方案--------------------
變通一下(待匹配的項數不定,形式語言基本無法實現)
preg_match_all('#<(d[dt])>\s*([^<]+)#is', $s, $r);
print_r($r);
Array
(
[0] => Array
(
[0] =>
2013

[1] =>
row1

[2] =>
row2

[3] =>
row3

[4] =>
2014

[5] =>
row1

[6] =>
row2

)

[1] => Array
(
[0] => dt
[1] => dd
[2] => dd
[3] => dd
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.