PHP正则查找字符串

多谢。

//查找函有“2”的字符串
//这些数据其实是数组,以逗号隔开
//注意25不匹配,只匹配2
$arr = array(
    '2,4',
    '1,56,2,4',
    '3,2',
    '3,5,46',
    '1,8,3,25',
);
$reg = "\b2,?\b";
foreach ($arr as &$value) {
    if (preg_match($reg, $value)) {
        echo "1";
    } else {
        echo "0";
    }
}

其实我是想查找MYSQL中的数据,多谢。

阅读 5.5k
4 个回答

mysql的话可以用find_in_setinstr

$reg = "\b2,?\b"中的正则表达式改为$reg = "#2#"就可以啦

$arr = array(
    '2,4',
    '1,56,2,4',
    '3,2',
    '3,5,46',
    '1,8,3,25',
);
$v = 2;
$res=array_filter($arr,function($i) use($v){
    return in_array($v,explode(',',$i));
});
print_r($res);

Array
(
    [0] => 2,4
    [1] => 1,56,2,4
    [2] => 3,2
)

$reg = "#\b2,?\b#";
foreach ($arr as $value) {
    if (preg_match($reg, $value)) {
        echo $value.'<br>';
    }
}

2,4
1,56,2,4
3,2

直接贴代码

$arr = array(
    '2,4',
    '1,56,2,4',
    '3,2',
    '3,5,46',
    '1,8,3,25',
);
$reg = "#\b2,?\b#";
foreach ($arr as &$value) {
    if (preg_match($reg, $value)) {
        echo "1";
    } else {
        echo "0";
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题