PHP正則表達(dá)式核心技術(shù)完全詳解 第6節(jié) php正則分割函數(shù)

極客小俊
? 一個(gè)專(zhuān)注于web技術(shù)的80后
你不用拼過(guò)聰明人,你只需要拼過(guò)那些懶人 你就一定會(huì)超越大部分人!

PHP正則分割函數(shù)
preg_split() ?通過(guò)一個(gè)正則表達(dá)式分隔字符串, 返回?cái)?shù)組!?
參數(shù)列表:?
參數(shù)1:正則表達(dá)式?
參數(shù)2:字符串?
參數(shù)3: limit參數(shù)一般指定分割多少個(gè)數(shù),但是返回?cái)?shù)組的最后一個(gè)[子串]元素將包含所有剩余沒(méi)有分割的部分?
參數(shù)4: 一些默認(rèn)常量的配置、并且可以以位或運(yùn)算 | 進(jìn)行組合使用、?
如: PREG_SPLIT_NO_EMPTY如果這個(gè)標(biāo)記被設(shè)置, preg_split() 將進(jìn)返回分隔后的非空部分! 返回值: 返回通過(guò)正則邊界分隔字符串后得到的數(shù)組!
特別注意:被匹配到的分隔字符串不會(huì)被返回!
例1: 使用逗號(hào)或空格(包含" ", \r, \t, \n, \f)分隔短語(yǔ) 代碼如下:
?$pattern='/[\s,]+/';
?$subject='hypertext language, programmimg';
?$result=preg_split($pattern, $subject,3,PREG_SPLIT_NO_EMPTY);
?show($result);
例2: 使用#號(hào)字符來(lái)分割一個(gè)字符串 ?比如我們有時(shí)候會(huì)得到一個(gè)路徑的字符串 按照一定規(guī)則進(jìn)行連接,我們需要把他們拆分開(kāi),得到我們想要的連接數(shù)據(jù) 代碼如下:
?$pattern='/#/';
?$subject='upload/1.jpg#upload/2.jpg#upload/3.jpg#upload/4.jpg#upload/5.jpg#upload/6.jpg';
?$result=preg_split($pattern, $subject,-1,PREG_SPLIT_NO_EMPTY+PREG_SPLIT_OFFSET_CAPTURE);
?show($result);
例3:匹配div標(biāo)簽 取出div中的內(nèi)容 代碼如下:
?$subject='<div style="border:1px solid red">
? ? ?<a href="http://www.baidu.com">百度</a> <span style="color:red">測(cè)試數(shù)據(jù)1</span>
? ? ?</div>
? ? ?<div style="border:5px solid blue">
? ? ?<a href="http://www.sina.com">新浪</a> <span style="color:blue">測(cè)試數(shù)據(jù)2</span>
? ? ?</div>';
?$pattern='/(<div\s.+?>)|(<\/div>\s*)/is';
?$result=preg_split($pattern, $subject,-1,PREG_SPLIT_NO_EMPTY);
?show($result);
? ? ? 如果喜歡話(huà)請(qǐng) 點(diǎn)贊? 投幣? 收藏 一鍵三連? ?
大家的支持就是我堅(jiān)持下去的動(dòng)力!
