为了账号安全,请及时绑定邮箱和手机立即绑定

php正则表达式的三个最基本原则分享

标签:
PHP
  • 我个人认为,正则表达式的常规用法可以分为如下三个最基本的原则:1、找谁、2、怎么找、3、找它干什么。
    接下来,我分享一下一个正则表达式分三个部分:
    原子字符
    . 匹配除换行符以外的任意字符
    \w 匹配一个字母或数字或下划线
    \s 匹配一个空白符
    \d 匹配一个数字
    \b 匹配单词的开始或结束的位置(匹配一个位置)
    ^ 匹配字符串的开始
    $ 匹配字符串的结束

    • 表示范围
      [] 匹配括号中的任意一个字符

      量词

    • 重复0次或更多次
    • 重复1次或更多次
      ? 重复0次或1次
      {n} 重复n次
      {n,} 重复n次或更多次
      {n,m} 重复n到m次

      反义
      \W \w取反
      \S \s取反
      \D \d取反
      \B \b取反
      [^x] 匹配除了x以为的任意一个字符
      [^abcde] 匹配除了abcde以为的任意一个字符

      分支
      | 表示分支,在[]中无效,匹配分支条件时,从左往右匹配,当匹配到某个分支时结束,不会再考虑后面的分支

      分组
      捕获
      (exp) 匹配exp,并捕获文本到自动命名的组里
      (?<name>exp) 匹配exp,并捕获文本到名为name的组里
      (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号

      零宽断言
      (?=exp) 匹配exp前面的位置
      (?<=exp) 匹配exp后面的位置
      (?!exp) 匹配后面跟的不是exp的位置
      (?<!exp) 匹配前面不是exp的位置

      注释
      (?#comment) 提供注释辅助阅读,不对正则产生任何影响

      反向引用
      \1 引用第一个分组子匹配
      \n 引用第n个分组子匹配
      \k<name> 引用命名为name的分组子匹配

      懒惰模式
      *? 任意次
      +? 一次或多次
      ?? 0次或1次
      {m,n}? m-n之间
      {m,}? 至少m

      常用正则
      /^\d+$/ 非负整数
      /^[1-9]+[0-9]$/ 正整数
      /^-\d+$|0/ 非正整数
      /^-[1-9]+[0-9]
      $/ 负整数
      /^[\w-.]+@[\w-.]+(.[\w-]+)+$/ email地址
      <(.)>.<\/\1>|<. \/> html标签
      <[img|IMG].
      ?src=\'|\"[\'|\"].*?[\/]?>
      提取img标签的src值。

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消