PHP正則 preg_match()

定義和用法

preg_match() 函數用於進行正則表達式匹配,成功返回 1 ,否則返回 0 。

preg_match() 匹配成功一次後就會停止匹配,如果要實現全部結果的匹配,則需使用 preg_match_all() 函數。

語法


 
  1. preg_match (pattern , subject, matches)
參數 描述
pattern 正則表達式
subject 需要匹配檢索的對象
matches 可選,存儲匹配結果的數組

例子 1


 
  1. <?php
  2. // 模式定界符後面的 "i" 表示不區分大小寫字母的搜索
  3. if (preg_match ("/hi/i", "Welcome to hi-docs.com.")) {
  4. echo "A match was found.";
  5. } else {
  6. echo "A match was not found.";
  7. }
  8. ?>

輸出:


 
  1. A match was found.

例子 2

匹配字符串中的url超鏈接


 
  1. <?php
  2. $urls = '<h3><a target="_blank" href="/php/preg_match.html"><span class="hl">preg</span>_match()</a></h3><p>[<a href="/Php.html">PHP</a>] 進行正則表達式匹配<br/><em>適用版本:5</em></p></dd><dd><h3><a target="_blank" href="/php/preg_match_all.html"><span class="hl">preg</span>_match_all()</a></h3>';
  3. if(preg_match("/<a[^>]*?href=\"([^>]+?)\"[^>]*?>.+?<\/a>/i", $urls ,$match)) {
  4. print_r($match);
  5. } else {
  6. echo "不匹配.";
  7. }
  8. ?>

輸出:


 
  1. Array
  2. (
  3. [0] => <a target="_blank" href="/php/preg_match.html"><span class="hl">preg</span>_match()</a>
  4. [1] => /php/preg_match.html
  5. )

例子3

使用正則表達式匹配中文


 
  1. $str = 'preg_match正則匹配中文123';
  2. // 正則表達式匹配中文(UTF8編碼)
  3. if(preg_match('/[\x{4e00}-\x{9fa5}]+/u',$str)){
  4. echo '匹配';
  5. }else{
  6. echo '沒有匹配';
  7. }
  8. // 正則表達式匹配中文(GB2312,GBK編碼)
  9. preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章