如何使preg_match匹配一个数字后跟一个点?

时间:2017-08-28 21:43:33

标签: php

我试图让preg_match只匹配前2个字符,这是一个数字后跟一个点,但它似乎匹配任何数字..

$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

为什么会这样?

1 个答案:

答案 0 :(得分: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>';
    }
}