与Perl兼容的正则表达式函数

时间:2024-01-01 13:10:57
<?php
$str = "abc_ABC_123abc";
$patt = '/^abc(.*?)abc$/'; //有一个模式单元就会多一个存储
$arr = null; //把匹配到的值存到数组中
$res = preg_match($patt, $str, $arr); //先存储匹配到的,在存储模式单元到$arr
print_r($arr);
echo "<hr />";
?>

<?php
$str = "abcabcabc123";
$patt = "/([a-b])(.*?)(\d)/ism";
$arr = null;
$res = preg_match_all($patt,$str,$arr);
print_r($res); //返回结果的个数
echo "<pre>";
print_r($arr);
echo "</pre>";
echo "<hr />";
?>

<?php
// $str = "abcabc123abc";
// $patt = "/\d{3}/";
// $res = preg_replace($patt, "ABC", $str);
// print_r($res);

$str = "12-28-2016";
$patt = "/(\d{2})-(\d{2})-(\d{4})/";
$res = preg_replace($patt, "\\3年\\1月\\2日", $str); //通过\\3把存储的模式单元值拿出来
print_r($res);
echo "<hr />";
?>

<?php
$arr = array("a", "b", 1, 2, 7);
$patt = "/\d/";
$res = preg_grep($patt, $arr);
print_r($res);
?>