十分钟正则快速入门

1.认识正则

正则其实就是字符串规则表达式。来看一个栗子:

$str = 'hi,this is his history';
$patt = '/hi/';
preg_match_all($patt,$str,$matches);
print_r($matches);
  • ^ 匹配字符串的开始
  • $ 匹配字符串的结尾
  • \b 匹配单词的开始和结尾(边界)
  • \B 匹配单词的非边界

2.常用字符簇

代表
.(点)任意字符,不含换行
\w[a-z A-Z 0-9_ ]
\W\w 的补集
\s空白符,包括\n\r\t\v等
\S非空白符
\d[0-9]
\D非数字

3.单词匹配

// 把字符串的 hi 单词找出来
$patt = '/\bhi\b/';
$str = 'hi, this is some history book';
preg_match_all($patt, $str, $res);
print_r($res);

// 把包含在单词内部的 hi 找出来
$patt = '/\Bhi\B/';
$str = 'hi, this is some history book';
preg_match_all($patt, $str, $res);
print_r($res);

4.集合与补集示例

// 找出手机号,必须由[0,1,2,3,5,6,8,9]组成,长度为11
$patt = '/^[01235689]{11}$/';
$patt = '/^[^47]{11}$/';

$arr = array('13800138000','13426060134','170235','18289881234568782');

foreach($arr as $v) {
    preg_match_all($patt, $v, $res);
    print_r($res);
}

5.字符范围

// 找出纯字母组成的单词
$str = 'o2o, b2b, hello,world, that';
$patt = '/\b[a-zA-Z]{1,}\b/'; //{1,}最少一个字母
$patt = '/\b[a-zA-Z]+\b/';
preg_match_all($patt, $str, $res);
print_r($res);

6.字符簇

字符簇就是系统规定好的表示方法。

// 把单词拆开
$str = 'tommorw is another day , o2o , you dont bird me i dont bird you';
$patt = '/\W{1,}/'; // \W->\w[a-zA-Z0-9]的补集
print_r(preg_split($patt, $str));

//把多个空格或制表换成一个空格
$str = 'a b heloo world'; // 'a b hello world';
$patt = '/\s{1,}/'; //\s空白符,包括\n\r\t\v等
//preg_replace — 执行一个正则表达式的搜索和替换
echo preg_replace($patt, ' ', $str);

7.找几个

  • *匹配前面的子表达式零次或多次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值