加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式小结

发布时间:2020-12-13 22:59:57 所属栏目:百科 来源:网络整理
导读:/** 讲讲元字符 . 的用法 . 任何字符的一次 .? 任何字符的一次或者0次 .+ 任何字符的一次或者以上 每次都可以是不同的值譬如 abc .* 任何字符的0次或者以上 每次都可以是不同的值譬如 abc*/{i} 代表任何字符$mode = '/a.b/'; $str = 'a{i}b'; $mode = '/a.?b
 
 
 
 
/*
* 讲讲元字符 . 的用法
  .   任何字符的一次
  .?  任何字符的一次或者0次
  .+  任何字符的一次或者以上  每次都可以是不同的值譬如 abc
  .*  任何字符的0次或者以上   每次都可以是不同的值譬如 abc
*/
{i} 代表任何字符

$mode = '/a.b/';  $str = 'a{i}b'; 

$mode = '/a.?b/'; $str = 'a{i}b'; 或者  $str = 'ab';

$mode = '/a.+b/'; $str = 'a{i}。。。b';

$mode = '/a.*b/'; $str = 'a{i}。。。b'; 或者  $str = 'ab';
<pre class="php" name="code">/*
* 讲讲元字符 b 的用法
* 匹配单词的边界  空格或者特殊字符(_不属于特殊字符)
*/

$mode = '/bisb/';  $str = 'where is';    ok

$mode = '/bisb/';  $str = 'where.is ';    ok

$mode = '/bisb/';  $str = 'where_is ';    error

$mode = '/bisb/';  $str = 'where.is ';    ok
<pre class="php" name="code">/*
* 讲讲元字符 ( )  的用法
* 合并整体匹配 放入内存,可使用1 2  类似  获取
*/

$mode = '/l(abc)l1/';  $str = 'labclabc';   
if (  preg_match($mode,$str,$arr) ) {
	echo '匹配成功';
	print_r($arr);
}
结果:
匹配成功
Array
(
    [0] => labclabc
    [1] => abc
)

/*
* 讲讲元字符 ( )  的用法
* 讲一个例子 譬如 年月  可以是 2014-12-12 或者 2014/12/12 或者 20141212  或者 20141212
*/
 
$str = '2014-12-12';
$mode = '/2014(.*)121(12)/s';  
$str = '2014-12-12';   
if (  preg_match($mode,$arr) ) {
	echo '匹配成功';
	print_r($arr);
}
结果:
匹配成功
Array
(
    [0] => 2014-12-12
    [1] => -
    [2] => 12
)
<pre class="php" name="code">$mode = '/d{4}(.*)d{1,2}1d{1,2}/s';  
$str = '2014-12-12';  
if (  preg_match($mode,$arr) ) {
	echo '匹配成功';
	print_r($arr);
}
结果:
匹配成功
Array
(
    [0] => 2014-12-12
    [1] => -1
)
 
 
 
 
 
$mode = '/{(.*)}/U';  
$str = 'adk{who}oeo{is}rot{it}yor';  
preg_match_all($mode,$arr);
print_r($arr);
结果:
Array
(
    [0] => Array
        (
            [0] => {who}
            [1] => {is}
            [2] => {it}
        )

    [1] => Array
        (
            [0] => who
            [1] => is
            [2] => it
        )

)


$mode = '/{(.*)}/U';  
$str = 'adk{who}oeo{is}rot{it}yor';  
echo preg_replace($mode,'中文',$str);
结果: adk中文oeo中文rot中文yor 


$mode = array('/{w{3}}/','/{w{2}}/'); 
$mat = array('我是三个单词','我是二个单词');
$str = 'adk{who}oeo{is}rot{it}yor'; 
echo preg_replace($mode,$mat,$str);
输出:
adk我是三个单词oeo我是二个单词rot我是二个单词yor 
 
$mode ='/([a-z])/i'; 
$str = '111a1111A222221b11'; 
echo preg_replace($mode,"md5(<a target=_blank href="file://1">1</a>)",$str);
输出:
111md5(a)1111md5(A)222221md5(b)11
 
$mode ='/([a-z])/ie'; 
$str = '111a1111A222221b11'; 
echo preg_replace($mode,$str);
输出:1110cc175b9c0f1b6a831c399e26977266222227fc56270e7a70fa81a5935b72eacbe2922222192eb5ffee6ae2fec3ad71c777531578f11
 


小结:

小结:1.替换正则表达式 。2.正则表达式数组。3.在执行过程中通过修正符 e,把替换的内容运算后在替换

备注:preg_replace 函数 还有第四个参数 limit,替换的次数 preg_replace($mode,$limit),limit如果是 1 的话就是替换一次就会停止

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读