本文實例講述了PHP經典實用正則表達式。分享給大家供大家參考,具體如下:
對于開發人員來說,正則表達式是一個非常有用的功能,它提供了 查找,匹配,替換 句子,單詞,或者其他格式的字符串。這里介紹了幾個超實用的php正則表達式,需要的朋友可以參考下。
1. 驗證域名檢驗一個字符串是否是個有效域名
<?php $url = "https://www.baidu.com"; if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?\/?/i', $url)) { echo "Your url is ok."; } else { echo "Wrong url."; }
2. 從一個字符串中 突出某個單詞
這是一個非常有用的在一個字符串中匹配出某個單詞 并且突出它,非常有效的搜索結果
<?php $text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; $text = preg_replace("/(regex)/i", '<span style="background:#5fc9f6">1</span>', $text); echo $text;
function get_the_title(){ return 'Save the search.php file and open style.css. Append the following line to it: '; } $s = 'and php'; $title = get_the_title(); $keys= explode(" ",$s); $title = preg_replace('/('.implode('|', $keys) .')/iu', '<strong>\0</strong>', $title); echo $title;
3. 從HTML文檔中獲得全部圖片
如果你曾經希望去獲得某個網頁上的全部圖片,這段代碼就是你需要的,你可以輕松的建立一個圖片下載機器人
<?php $images = array(); $data = file_get_contents('https://www.baidu.com'); preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $data, $media); unset($data); $data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]); foreach($data as $url) { $info = pathinfo($url); if (isset($info['extension'])) { if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) array_push($images, $url); } } var_dump($images);
4. 匹配一個XML或者HTML標簽
這個簡單的函數有兩個參數:第一個是你要匹配的標簽,第二個是包含XML或HTML的變量,再強調下,這個真的很強大
<?php function get_tag( $tag, $xml ) { $tag = preg_quote($tag); output($tag); preg_match_all('/<'.$tag.'[^>]*>(.*?)<\/'.$tag.'>./', $xml, $matches, PREG_PATTERN_ORDER ); return $matches[1]; } $xml = '<span>bb<a>bbb</a><a>ccc</a></span><span>bb<a>aa</a><p><a>ddd</a></p></span>'; $tag = 'a'; $return = get_tag($tag, $xml); var_dump($return); /* array(2) { [0]=> array(3) { [0]=> string(11) "bbb<" [1]=> string(10) "aa<" [2]=> string(11) "ddd<" } [1]=> array(3) { [0]=> string(3) "bbb" [1]=> string(2) "aa" [2]=> string(3) "ddd" } } array(3) { [0]=> string(3) "bbb" [1]=> string(2) "aa" [2]=> string(3) "ddd" } */
PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:
JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php正則表達式用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。