2017-08-28 44 views
1

我試圖做的preg_match只匹配第2個字符,這是一個數字後面跟着一個點,但它似乎是匹配任何數字..如何讓preg_match匹配一個數字後跟一個點?

$data = array('1. awesome', '3. not cool', '23423,12 is not suppose to match'); 

foreach($data as $array){ 
    if (preg_match('/^([0-9].)/', $array)) { 
     echo $array, '</br>'; 
    } 
} 

的輸出:

1. awesome 
3. not cool 
23423,12 is not suppose to match 

這是怎麼發生的?

+0

你需要躲避期間,否則它的「任何字符」。 –

+0

@JonStirling,哈..我只能說。謝謝。 – Craig

回答

0

你在你的正則表達式中寫了.,它匹配任何東西(這是一個通配符)。你需要用\逃脫它來搭配文字.

<?php 
$data = array('1. awesome', '3. not cool', '23423,12 is not suppose to match'); 

foreach($data as $array){ 
    if (preg_match('/^([0-9]\.)/', $array)) { 
     echo $array, '</br>'; 
    } 
} 
相關問題