php基础二(正则表达式)

<!-- PHP中的正则表达式 -->
<?php
//     定界符:
//     中间写正则
//     //
//     $$
//     %%
//     ^^
//     @@
//     ()
//     AA
//     include_once 'Class6.php';
    
    //原子通常指空格、点、特殊符号等;
//     特殊标识的原子
//   \d 匹配一个0-9
//   \D 除了0-9以外的所有字符
//   \w a-zA-Z0-9_
//   \W 除了0-9A-Za-z_以外的所有字符
//   \s 匹配所有空白字符\n\t\r空格
//   \S 匹配所有非空白字符
//   [] 指定范围的原子
    
    
    $zz = '/a/';
    $string = 'fsadfgsadfasdfsd';
    if (preg_match($zz, $string,$matches)) {
        echo '匹配到了,结果为:';
        var_dump($matches);
    }else{
        echo '没有匹配到!';
    }
    
//     原子等价式
//     \w [a-zA-Z0-9_]
//     \W [^a-zA-Z0-9_]
//     \d [0-9]
//     \D [^0-9]
//     \s [\t\n\f\r]
//     \S [^\t\n\f\r]
    $zzz = '/[^0-9A-Za-z_]/';
    $string = 'aaaaab311dd';
    $string1 = '##@$#$%$%^^';
    if (preg_match($zzz, $string1,$matches)) {
        echo '匹配成功,结果为:';
        var_dump($matches);
    }else{
        echo '匹配失败!';
    }
    
    //元字符(重点)
    
    //模式匹配符
    $pattern = '/^a\d+/m';
    $string3 = "学好成a9为大神,干番大事业";
    if (preg_match($pattern, $string3,$matches)) {
        echo '匹配完成,结果为:';
        var_dump($matches);
    }else {
        echo '匹配失败!'.'<br />';
    }
    
    $pattern = '/新的未来.+\d+/s';
    $string = "新的未来987654321";
    if (preg_match($pattern, $string,$matches)) {
        echo '匹配完成,结果为:';
        var_dump($matches);
    }else {
        echo '匹配失败!';
    }
    
    $pattern = '/(\w+)@(\w+).(com|org)/';
    $str = "bob@example.com";
    preg_match($pattern, $str, $match);
    print_r($match);
    
//     UBB文本编辑器
    $string4='[b]为你写诗句[/b]
    [i]为你做不可能的事[/i]
    [u]诶呀,哥不是写情诗[/u]
    [color=Red]哥是再说情歌[/color]
    [size=7]吴克群[/size]
    [qq]123123123[/qq]';
    //匹配UBB字符
    $pattern=array(
        '/\【b\】(.*)\【\/b\】/i',
        '/\【i\】(.*)\【\/i\】/iU',
        '/\【u\】(.*?)\【\/u\】/i',
        '/\【color=(.*?)\】(.*?)\【\/color\】/',
        '/\【size=(\d)\】(.*?)\【\/size\】/',
        '/\【qq\】(\d{5,12})\【\/qq\】/');
    $replace=array(
        '<b>\\1</b><br />',
        '<i>\\1</i><br />',
        '<u>\\1</u><br />',
        '<font color="\\1">\\2</font><br />',
        '<font size="\\1">\\2</font><br />',
        '<a href="http://wpa.qq.com/msgrd?V=1&Uin=\\1&Site=[Discuz!]&Menu=yes"target="_blank"><img src="http://wpa.qq.com/pa?p=1:\\1:1" border="0"></a>');
    $ubb = preg_replace($pattern, $replace, $string4);
    echo $ubb;
  
// 1.POSIX正则表达式扩展在PHP哪个版本被废弃了
// 答: PHP 5.3.0 开始
// 2.请写出匹配任意数字,任意空白字符,任意单词字符的符号?
// 答: \d \s \w
// 3.执行一个正则表达式匹配的函数是什么?返回的结果有哪些?
// 答: preg_match($pattern,$subject [,&$matches]),返回结果0或1,因为preg_match()在第一次匹配后停止搜索
// 4.执行一个全局正则表达式匹配的函数是什么?
// 答: pregmatch_all($pattern,$subject [,&$matches])
// 5.执行一个正则表达式的搜索和替换的函数是什么?
// 答: preg_replace($pattern,$replacement,$subject)
// 6.通过一个正则表达式分隔字符串的函数是什么?
// 答: preg_split($pattern,$subject)
// 7.返回匹配模式的数组条目的函数是什么?
// 答: preg_grep($pattern,$array)
// 8.写出一个邮箱匹配规则?
// 答: $pattern = '/^[a-z\d_-]+@[a-z\d]+.[a-z]{2,3}$/i'
// 9.写出一个国内电话和手机的匹配规则,匹配的电话形式为?010-87898765,0798-8765342,0798-12345678,18607086789,+8613989765432
// 答: $pattern = '/^(\+86)?1\d{10}|\d{3}-\d{8}|\d{4}-\d{7,8}$/'
// a.写出一个密码匹配规则,要求以字母开头,6-18位?
// 答: $pattern = '/^[a-z]\w{5,17}$/i'
 
// A.写一个函数,要求将传入的字符串使用逗号或空格(包含" ", \r, \t, \n, \f)分隔成数组
function split($string){
    return preg_split("/[\s,]+/", $string);
// B.截取某个字符串中的MAC地址,然后匹配类似于这种:mac:0A:89:82:84:F4:09
function replace($string){
    return preg_replace("/.*(([a-z\d]{2}:){5}[a-z\d]{2}).*/i","mac:$1",$string);
}
$string = "Link encap:Ethernet  HWaddr 00:16:3E:00:6E:363eefrrr";
var_dump(replace($string));
//mac:00:16:3E:00:6E:36





?>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值