我试图让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
为什么会这样?
答案 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>';
}
}