鍍金池/ 問答/Java  PHP  HTML/ php 正則怎么寫 嵌套匹配 外層出現(xiàn)0次或者1次的字符串,需要的是內(nèi)層的數(shù)據(jù)

php 正則怎么寫 嵌套匹配 外層出現(xiàn)0次或者1次的字符串,需要的是內(nèi)層的數(shù)據(jù)

正則匹配這樣一段網(wǎng)頁

<div class="details-message-number">
    <span class="c-blue">45</span>
    個站點安裝
             &nbsp; &nbsp;
         <span class="c-blue">
             43         </span>
         個站點付費安裝
    </div>

其中需要的是45個站點安裝的“45”,和43個站點付費安裝的“43”,如果沒有付費站點安裝,代碼是這樣的

<div class="details-message-number">
    <span class="c-blue">180</span>
    個站點安裝
    </div>

43那一段就沒了
我的匹配規(guī)則是這樣

$p = '/<div class="details-message-number">(?:[\s\S]*?)class="c-blue">(?P<install_numbers>[\s\S]*?)<\/span>(?:[\s\S]*?)個站點安裝(?:[\s\S]*?)(?:<span class="c-blue">(?P<install_numbers_pay>[\s\S]*?)<\/span>)?/';

不加最后的問號“?”,則沒有付費站點安裝的情況匹配結(jié)果為空;如果加上問號,有或者沒有付費站點安裝匹配結(jié)果不為空,但是install_numbers_pay字段沒有值

回答
編輯回答
鹿惑

推薦一個可視化正則表達式的網(wǎng)址
https://regexper.com/#%5C%7C%...

推薦一個正則表達式的匹配網(wǎng)址
https://regex101.com/#javascript

推薦一個正則學(xué)習(xí)地址:
http://deerchao.net/tutorials...

2018年3月20日 14:08