正規表示式*的問題
益伦
益伦 2017-11-18 09:49:36
0
8
1515

<?php

$zz = '/Audi*/';

$string = "奧迪奧迪迪2500都是我最愛";

if(preg_match($zz, $string, $matches)){

   echo '配對到了,結果為: ';

   var_dump($matches);

}else{

   echo '沒有符合到';

#}

? >

為什麼輸出結果是'奧迪',而不是'奧迪奧迪'或'奧迪迪',*不是最少0次嗎,有兩次情況下怎麼沒全部提取出來

益伦
益伦

全部回覆(2)
又白又帅又可爱

使用preg_match應該匹配到“奧迪”,使用preg_match_all應該匹配到“奧迪奧迪迪”,

這是理論結果,可實際上正則匹配中文的例子我還沒有見過,正則只能檢查是不是中文和限制長度,而且是用的中文的字節碼,類似這種:u4e00-u9fa5

  • 回覆 好吧,試了一下中文確實很多不行,我以後再少用中文做例子
    益伦 作者 2017-11-20 23:17:33
路过

preg_match 只符合一個

preg_match_all 是全部符合結果

建議去查查手冊

  • 回覆 &lt;?php $zz = '/250*/'; $string = "迪奧和奧迪25000都是我最愛"; if(preg_match($zz, $string, $matches)){ echo '匹配到了,結果為:'; var_dump($matches); }else{ echo '沒有匹配到'; } ?&gt; 越來越亂了,那這程式碼結果為什麼是25000呢,而不是你說得250?
    益伦 作者 2017-11-18 11:01:48
  • 回覆 匹配它前面一個字元任意遍(0或任意次)
    益伦 作者 2017-11-18 11:08:10
  • 回覆 好吧,謝謝你願意解答
    益伦 作者 2017-11-20 23:12:45
  • 回覆 你知道 * 的意思嗎?
    路过 作者 2017-11-18 11:03:33
  • 回覆 看手冊去吧
    路过 作者 2017-11-18 11:39:39
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!