2017-08-28 7 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、ha ..すべて私が言うことができます。ありがとうございました。 – 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>'; 
    } 
} 
関連する問題