我試圖使用像R401.4
或R402.3.4
分隔符使用下面的代碼,以分割一個大的字符串:拆分字母數字和fullstops以使preg_split字符串
<?php
$chapter = "http://codes.iccsafe.org/app/book/content/2015-I-Codes/2015%20IRC%20HTML/Chapter%204.html";
$data = file_get_contents($chapter);
$split = preg_split('/(<b>[R]\d{3}[.][0-9])/' , $data, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($split);
?>
當我在PHP運行此我得到一個不正確分裂象下面,其中我得到一個分裂,我想和之後,而不是僅僅在每個R401.
部分:
[3] => R401.2 [4] =>要求。根據R301和 的規定,基礎施工應能夠承受所有荷載,將所產生的荷載傳遞到支撐土上。填充土壤 支持地基和基礎的設計,安裝和按照公認的工程實踐進行測試。礫石填料 用作木材和預製混凝土基礎的基礎應符合第R403部分的要求 。
[5] => R401.3 [6] =>排水。地表排水應改道至 雨水渠運輸或其他批准的收集點,不會造成危害。應將地塊分級,使其遠離地基牆排出地表水 。在最初的10英尺(3048毫米)範圍內,等級至少應爲6英寸(152毫米)。
例外:凡須以大量線,牆壁,斜坡或 禁止10英尺(3048毫米),排水管或 窪地內落下的6英寸(152 mm)的其它物理屏障,以確保排水從 結構遠。 建築物基礎的10英尺(3048毫米)以內的不透水錶面應與建築物的 相差至少2%。
[7] => R401.4 [8] =>土壤測試。
但是,當我在像regexer.com
這樣的正則表達式測試網站上嘗試我的表達時,它似乎能夠正常工作。
有什麼毛病我regex
或者這是否有東西在php
做preg_match
?
我在找的是我的數組被格式化這樣的:
[3] => R401.2要求。根據R301和 的規定,基礎施工應能夠承受所有荷載,將所產生的荷載傳遞到支撐土上。填充土壤 支持地基和基礎的設計,安裝和按照公認的工程實踐進行測試。礫石填料 用作木材和預製混凝土基礎的基礎應符合第R403部分的要求 。
[4] => R401.3排水。地表排水應改道至 雨水渠運輸或其他批准的收集點,不會造成危害。應將地塊分級,使其遠離地基牆排出地表水 。在最初的10英尺(3048毫米)範圍內,等級至少應爲6英寸(152毫米)。
注:我知道它通常更好地解析使用DOM
感謝頁面。
搜索關於'PREG_SPLIT_DELIM_CAPTURE' *(並使用DOM)* –