正则表达式基础1

-----------------正则表达式基础1-----------------------
<?php 
//定界符应用举例
$subject = "this is a test";
//正则表达式
$pattern = "||";
preg_match_all($pattern,$subject,$match);

var_dump($match);
----------------------------------------------------
<?php 
//原子应用举例
$subject = "this is * a test";
//正则表达式
$pattern = "/\*/";
preg_match_all($pattern,$subject,$match);

var_dump($match);
----------------------------------------------------
<?php 
/*
 * 1、应用正则表达式函数。找到下面字符串中的所有数字
   t3his i5s 6a te1st
 */
//原子应用举例
$subject = "th is  is";
//正则表达式
//\d 代表所有的数字
//\D 代表了所有的非数字

//\w 数字、字母、下划线
//\W 非数字、字母、下划线

$pattern = "/\s/";
preg_match_all($pattern,$subject,$match);

var_dump($match);
----------------------------------------------------
<?php 
/*
 * 1、应用正则表达式函数。找到下面字符串中的所有数字
   t3his i5s 6a te1st
 */
$suject = "t3his i5s 6a te1st";
$pattern = "/\d/";
preg_match_all($pattern,$suject,$match);
var_dump($match); 
----------------------------------------------------
<?php 
//自定义原子表
$suject = "t4hiAs i6s a te7st";
//^非,既不是小写字母也不是数字
$pattern = "/[^a-z0-9]/";
preg_match_all($pattern,$suject,$match);
var_dump($match); 
----------------------------------------------------
<?php 
//. 任意原子
$suject = "gooooooooooooooogle";
//至少出现两次,若是少于2次就匹配不到
$pattern = "/go{2,}gle/";
preg_match_all($pattern,$suject,$match);
var_dump($match);
----------------------------------------------------
<?php 
//. 任意原子
$suject = "php mysql or oracle";
//|或
$pattern = "/mysql|oracle/";
preg_match_all($pattern,$suject,$match);
var_dump($match); 
----------------------------------------------------
<?php 
//开始和结束
$suject = "abcthis is  a testabc";
$pattern = "/abc\Z/";//以什么为结尾
$pattern1 = "/abc$/";//以什么为结尾
$pattern = "/^abc/";//以什么为开头
$pattern1 = "/\Aabc/";//以什么为开头
preg_match_all($pattern,$suject,$match);
var_dump($match);
----------------------------------------------------
<?php
//开始和结束
$suject = "this is  a testabc";
$pattern = "/(is)/";//子模式,会生成[1]往下顺延
preg_match_all($pattern,$suject,$match);
echo '<pre>';
var_dump($match);
echo '</pre>';
// \d 所有数字          \D 所有非数字
// \w 字母 数字 下划线  \W 非所有字母数字下划线
// \s 所有空格          \S 非所有空格
/*array(2) {
    [0]=>
  array(2) {
        [0]=>
    string(2) "is"
    [1]=>
    string(2) "is"
  }
  [1]=>
  array(2) {
        [0]=>
    string(2) "is"
    [1]=>
    string(2) "is"
  }
}*/
----------------------------------------------------
<?php
//开始和结束
$suject = "this this testsssssss sss";
$pattern = "/(i)(s)/";//子模式,会生成[1]往下顺延,
//[0]下标先生成总的匹配,[1]之后的匹配每个括号的内容
preg_match_all($pattern,$suject,$match);
echo '<pre>';
var_dump($match);
echo '</pre>';
// \d 所有数字          \D 所有非数字
// \w 字母 数字 下划线  \W 非所有字母数字下划线
// \s 所有空格          \S 非所有空格
/*array(3) {
  [0]=>
  array(2) {
    [0]=>
    string(2) "is"
    [1]=>
    string(2) "is"
  }
  [1]=>
  array(2) {
    [0]=>
    string(1) "i"
    [1]=>
    string(1) "i"
  }
  [2]=>
  array(2) {
    [0]=>
    string(1) "s"
    [1]=>
    string(1) "s"
  }
}
}*/
----------------------------------------------------
<?php 
//开始和结束
$suject = "mysqoracle";
$pattern = "/mysq(l|o)racle/";
//括号改变了原来的意思,就是要匹配到mysqoracle或者mysqlracle
preg_match_all($pattern,$suject,$match);
var_dump($match); 
--------------正则匹配邮箱地址------------------
<?php 
//正则匹配邮箱地址
//要进行匹配的邮箱地址
$suject = "tom-john@163.com";
// .小数点可能会有转义字符的歧义,所以所用转移字符,保险,-横杠同理
$pattern = "/\w+([\.\-]\w+)?@\w+\.(com|cn|net|org)/";
preg_match_all($pattern,$suject,$match);
var_dump($match);
--------------正则匹配手机号码---------------------
<?php 
//正则匹配手机号码
$suject = "13703810477";
//最后的$结尾非常的有必要,当13703810477最后超过9个数的时候,就不能匹配了
$pattern = "/^1(3|4|5|7|8)\d{9}$/";
$pattern = "/^1[34578]\d{9}$/";
var_dump(preg_match_all($pattern,$suject,$match));
echo "<hr/>";
var_dump($match);
-------------正则日期 YYYY-MM-DD或YYYY/MM/DD---------
<?php
//正则日期 YYYY-MM-DD或YYYY/MM/DD
$suject = "2016-10/12";
//反向引用\\1 获取的是小括号里面获取的字符,两处都匹配
$pattern = "/^\d{4}([\-\/])\d{2}[\-\/]\d{2}$/";
preg_match_all($pattern,$suject,$match);
var_dump($match);
------------模式修正符-----------------------------
<?php 
//正则日期 YYYY-MM-DD或YYYY/MM/DD
$suject = "this is a TEST";
$pattern = "/test/i";
preg_match_all($pattern,$suject,$match);
var_dump($match);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值