3. PCRE 兼容正则表达式

preg_grep

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

如:

//匹配国内固定电话
$preg = '/\d{3,4}-?\d{7,8}/';
    $arr = array('0432123456789','0431-7654321','12345678');
    $preg_arr = preg_grep($preg,$arr);
    var_dump($preg_arr);

输出:

array(2) { [0]=> string(13) "0432123456789" [1]=> string(12) "0431-7654321" }

preg_match

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
搜索subject与pattern给定的正则表达式的一个匹配.

preg_match_all

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

一直匹配到最后。

$str = 'This is an example!';
    $preg = '/\b\w{2}\b/';
    $num1 = preg_match($preg,$str,$str1);
    echo $num1.'<br/>';
    var_dump($str1);
    $num2 = preg_match_all($preg,$str,$str2);
    echo '<p>'.$num2.'<br/>';
    var_dump($str2);

preg_quote

preg_quote()需要参数 str 并向其中 每个正则表达式语法中的字符前增加一个反斜线。 这通常用于你有一些运行时字符串 需要作为正则表达式进行匹配的时候。

正则表达式特殊字符有: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -


string preg_quote ( string $str [, string $delimiter = NULL ] )
<?php
$keywords = '$40 for a g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // 返回 \$40 for a g3\/400
?> 

preg_replace
preg_replace — 执行一个正则表达式的搜索和替换

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?> 

输出:

April1,2003

preg_replace_callback
preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

preg_split
preg_split — 通过一个正则表达式分隔字符串

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
<?php
//使用逗号或空格(包含" ", \r, \t, \n, \f)分隔短语
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?> 

输出:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值