2017-08-28 45 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>'; 
    } 
} 
相关问题